C · Intermediário · Inglês · Técnico
memcpy
Função que copia n bytes de uma origem para um destino sem interpretar o conteúdo. As áreas não podem se sobrepor, ou o resultado é comportamento indefinido.
Onde usar
É o jeito padrão de copiar structs, arrays e bytes brutos, e a forma correta de reinterpretar bytes sem violar strict aliasing. Compiladores a otimizam bastante.
Em código
int a[3] = {1, 2, 3};
int b[3];
memcpy(b, a, sizeof a); // copia os 3 intsExemplos
Use memcpy to copy the struct into the buffer.
Use memcpy para copiar a struct para o buffer.
memcpy with overlapping ranges is undefined.
O memcpy com regiões sobrepostas é indefinido.
Cuidado
Usar com áreas sobrepostas: nesse caso o certo é memmove.
Origem
Abreviação de memory copy.