C · Intermediário · Inglês · Técnico
memmove
Função que copia n bytes de uma origem para um destino, funcionando corretamente mesmo se as áreas se sobrepõem. É a escolha para deslocar elementos dentro de um mesmo array.
Onde usar
Ao inserir ou remover no meio de um array, você desloca o resto com memmove. Perde-se pouco desempenho em relação à memcpy.
Em código
int v[5] = {1, 2, 3, 4, 5};
// remove v[1], deslocando o resto
memmove(&v[1], &v[2], 3 * sizeof v[0]);
// v = {1, 3, 4, 5, 5}Exemplos
Shift the tail with memmove, the ranges overlap.
Desloque o final com memmove, as regiões se sobrepõem.
memmove takes a byte count, not an element count.
O memmove recebe uma contagem de bytes, não de elementos.
Cuidado
Passar n em elementos em vez de bytes: multiplique pelo sizeof do tipo.
Origem
Abreviação de memory move.