Função da biblioteca C - memmove ()

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