Descrição
A função da biblioteca C void *memmove(void *str1, const void *str2, size_t n) cópias n personagens de str2 para str1, mas para blocos de memória sobrepostos, memmove () é uma abordagem mais segura do que memcpy ().
Declaração
A seguir está a declaração da função memmove ().
void *memmove(void *str1, const void *str2, size_t n)
Parâmetros
str1 - Este é um ponteiro para a matriz de destino onde o conteúdo deve ser copiado, convertido para um ponteiro do tipo void *.
str2 - Este é um ponteiro para a fonte de dados a ser copiado, convertido para um ponteiro do tipo void *.
n - Este é o número de bytes a serem copiados.
Valor de retorno
Esta função retorna um ponteiro para o destino, que é str1.
Exemplo
O exemplo a seguir mostra o uso da função memmove ().
#include <stdio.h>
#include <string.h>
int main () {
char dest[] = "oldstring";
const char src[] = "newstring";
printf("Before memmove dest = %s, src = %s\n", dest, src);
memmove(dest, src, 9);
printf("After memmove dest = %s, src = %s\n", dest, src);
return(0);
}
Vamos compilar e executar o programa acima que produzirá o seguinte resultado -
Before memmove dest = oldstring, src = newstring
After memmove dest = newstring, src = newstring