Soy un programador de Java que está aprendiendo C/C++. Así que sé que Java tiene una función como System.arraycopy(); para copiar un array. Me preguntaba si existe una función en C o C++ para copiar un array. Sólo he podido encontrar una implementación para copiar un array utilizando el bucle for, punteros, etc. ¿Hay alguna función que pueda utilizar para copiar un array?
Ya que has pedido una solución en C++...
#include <algorithm>
#include <iterator>
const int arr_size = 10;
some_type src[arr_size];
// ...
some_type dest[arr_size];
std::copy(std::begin(src), std::end(src), std::begin(dest));
Puedes utilizar la función memcpy()
,
void * memcpy ( void * destination, const void * source, size_t num );
memcpy()
copia los valores de num
bytes desde la ubicación apuntada por source
directamente al bloque de memoria apuntado por destination
.
Si el destino
y el fuente
se superponen, entonces puede utilizar memmove()
.
void * memmove ( void * destination, const void * source, size_t num );
La función memmove()
copia los valores de num
bytes desde la ubicación apuntada por source
al bloque de memoria apuntado por destination
. La copia tiene lugar como si se utilizara un buffer intermedio, permitiendo que el destino y el origen se superpongan.