memmove
, wmemmove
Move um buffer para outro. Versões mais seguras dessas funções estão disponíveis; confira memmove_s
, wmemmove_s
.
Sintaxe
void *memmove(
void *dest,
const void *src,
size_t count
);
wchar_t *wmemmove(
wchar_t *dest,
const wchar_t *src,
size_t count
);
Parâmetros
dest
Objeto de destino.
src
Objeto de origem.
count
O número de bytes (memmove
) ou caracteres (wmemmove
) a serem copiados.
Valor retornado
O valor de dest
.
Comentários
Copia bytes count
(memmove
) ou caracteres (wmemmove
) de src
para dest
. Se algumas partes das regiões de destino e origem se sobrepõem, ambas as funções garantem que os bytes de origem originais na região sobreposta sejam copiados antes de serem substituídos.
Observação de segurança Certifique-se de que o buffer de destino seja grande o suficiente para acomodar o número de caracteres movidos. Para obter mais informações, confira Como evitar sobrecargas de buffer.
As funções memmove
e wmemmove
serão preteridas somente se a constante _CRT_SECURE_DEPRECATE_MEMORY
for definida antes da instrução #include
, conforme mostrado no exemplo a seguir:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Requisitos
Rotina | Cabeçalho necessário |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_memcpy.c
// Illustrate overlapping copy: memmove
// always handles it correctly; memcpy may handle
// it correctly.
//
#include <memory.h>
#include <string.h>
#include <stdio.h>
char str1[7] = "aabbcc";
int main( void )
{
printf( "The string: %s\n", str1 );
memcpy( str1 + 2, str1, 4 );
printf( "New string: %s\n", str1 );
strcpy_s( str1, sizeof(str1), "aabbcc" ); // reset string
printf( "The string: %s\n", str1 );
memmove( str1 + 2, str1, 4 );
printf( "New string: %s\n", str1 );
}
The string: aabbcc
New string: aaaabb
The string: aabbcc
New string: aaaabb
Confira também
Manipulação de buffer
_memccpy
memcpy
, wmemcpy
strcpy
, wcscpy
, _mbscpy
strncpy
, _strncpy_l
, wcsncpy
, _wcsncpy_l
, _mbsncpy
, _mbsncpy_l