English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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().
Abaixo está a declaração da função memmove().
void *memmove(void *str1, const void *str2, size_t n)
A função retorna um ponteiro para a área de armazenamento alvo str1 do ponteiro.
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