memmove, wmemmove
Move um buffer para outro.Versões mais seguras dessas funções estão disponíveis; see memmove_s, wmemmove_s.
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
Número de bytes (memmove) ou caracteres (wmemmove) para copiar.
Valor de retorno
The value of dest*.*
Comentários
Copies count bytes (memmove) or characters (wmemmove) from src to dest*.* Se algumas regiões da área de origem e o destino se sobrepõem, verifique se ambas as funções que os bytes de código-fonte original na região de sobreposição são copiados antes de serem sobrescritas.
Observação de segurança Certifique-se de que o buffer de destino é o mesmo tamanho ou maior que o buffer de origem.Para obter mais informações, consulte Evitando saturações de Buffer.
O memmove e wmemmove funções só serão substituídas se a constante _CRT_SECURE_DEPRECATE_MEMORY está definido antes para a instrução de inclusão para que as funções para ser substituído, como 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 adicionais de compatibilidade, consulte compatibilidade na introdução.
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 );
}
Equivalência do .NET Framework
Consulte também
Referência
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l