Compartir a través de


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