ExpertiDict

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

memmove

/ˈmɛm.muv/substantivo

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.

Veja também

Todos os termos de C