memmove
, wmemmove
Mueve un búfer a otro. Hay disponibles versiones más seguras de estas funciones; consulte memmove_s
, wmemmove_s
.
Sintaxis
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 origen.
count
Número de bytes (memmove
) o caracteres (wmemmove
) que se copiarán.
Valor devuelto
El valor de dest
.
Comentarios
Copia count
bytes (memmove
) o caracteres (wmemmove
) de src
a dest
. Si algunas partes de las regiones de origen y destino se superponen, ambas funciones se aseguran de que se copian los bytes de origen originales en la región superpuesta antes de que se sobrescriban.
Nota de seguridad Asegúrese de que el búfer de destino es lo suficientemente grande como para dar cabida al número de caracteres movidos. Para obtener más información, consulte Evitar saturaciones del búfer.
Las funciones memmove
y wmemmove
solo quedan en desuso si la constante _CRT_SECURE_DEPRECATE_MEMORY
se define antes de la instrucción #include
, como se muestra en el ejemplo siguiente:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
o
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Requisitos
Routine | Encabezado necesario |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// 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
Consulte también
Manipulación del búfer
_memccpy
memcpy
, wmemcpy
strcpy
, wcscpy
, _mbscpy
strncpy
, _strncpy_l
, wcsncpy
, _wcsncpy_l
, _mbsncpy
, _mbsncpy_l