Existe uma função para copiar um array em C/C++?

Eu sou um programador Java aprendendo C/C++. Então eu sei que Java tem uma função como System.arraycopy(); para copiar um array. Eu estava pensando se existe uma função em C ou C++ para copiar um array. Eu só fui capaz de encontrar implementação para copiar um array usando para loop, ponteiros, etc. Existe alguma função que eu possa usar para copiar um array?

Já que pediu uma solução C++...

#include 
#include 

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));
Comentários (6)

Você pode utilizar o memcpy(),

void * memcpy ( void * destination, const void * source, size_t num );

memcpy()copia os valores denumbytes do local apontado porsourcediretamente para o bloco de memória apontado pordestino`.

Se a "destinação" e a "fonte" se sobrepõem, então você pode utilizar "memmove()memmove().

void * memmove ( void * destination, const void * source, size_t num );

memmove()copia os valores denumbytes do local apontado porsourcepara o bloco de memória apontado pordestino`. A cópia ocorre como se um buffer intermediário fosse utilizado, permitindo que o destino e a fonte se sobreponham.

Comentários (11)

Utilize memcpy em C, std::copy em C++.

Comentários (4)