English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico da linguagem C

Controle de fluxo da linguagem C

Funções no C

Matrizes no C

Ponteiro no C

String no C

Estrutura da linguagem C

Arquivo da linguagem C

Outros C

Manual de referência da linguagem C

Uso e exemplo da função memmove() da biblioteca C

Biblioteca Padrão do C - <string.h>

Função da biblioteca C void *memmove(void *str1, const void *str2, size_t n) de str2 copia n caracteres para str1No entanto, no que se refere a blocos de memória sobrepostos, memmove() é um método mais seguro do que memcpy(). Se a área de destino e a área de origem se sobrepuserem, memmove() garante que os bytes da área sobreposta sejam copiados para a área de destino antes de serem cobertos, e o conteúdo da área de origem será alterado após a cópia. Se a área de destino e a área de origem não se sobrepuserem, funcionará da mesma forma que a função memcpy().

Declaração

Abaixo está a declaração da função memmove().

void *memmove(void *str1, const void *str2, size_t n)

Parâmetros

  • str1 -- Ponteiro para o array de destino usado para armazenar o conteúdo da cópia, convertido para void* Ponteiro.
  • str2 -- Ponteiro para a fonte de dados a ser copiada, convertido para void* Ponteiro.
  • n -- O número de bytes a serem copiados.

Retorno

A função retorna um ponteiro para a área de armazenamento alvo str1 do ponteiro.

Exemplo online

Abaixo está um exemplo que demonstra o uso da função memmove().

#include <stdio.h>
#include <string.h>
int main ()
{
   const 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, o que resultará na seguinte saída:

Antes de memmove dest = oldstring, src = newstring
Antes de memmove dest = newstring, src = newstring

Biblioteca Padrão do C - <string.h>