memmove, wmemmove
Mueve un búfer a otro. Hay disponibles versiones más seguras de estas funciones; vea 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 origen.count
Número de bytes (memmove) o de caracteres (wmemmove) para copiar.
Valor devuelto
El valor de dest.
Comentarios
Bytes de count de copias (memmove) o caracteres (wmemmove) de src a dest. Si algunas regiones de origen y de destino se superponen, ambas funciones garantizan que los bytes de origen originales en la región que se superpone se copiarán antes de ser sobrescrito.
Security Note Asegúrese De que el búfer de destino es el mismo tamaño o mayor que el búfer de origen. Para obtener más información, vea Evitar saturaciones del búfer.
Las funciones de memmove y de wmemmove se aplazada de desuso sólo si la constante _CRT_SECURE_DEPRECATE_MEMORY se define antes de la instrucción include para que las funciones son aplazada de obsoletos, como en el ejemplo siguiente:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Requisitos
Rutina |
Encabezado necesario |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.
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 );
}
Equivalente en .NET Framework
Vea también
Referencia
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l