ExpertiDict

C · Intermediário · Inglês · Técnico

memcpy

/ˈmɛm.kɑ.pi/substantivo

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 ints

Exemplos

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.

Veja também

Todos os termos de C