memmove
, wmemmove
Sposta un buffer in un altro. Sono disponibili versioni più sicure di queste funzioni; vedere memmove_s
, wmemmove_s
.
Sintassi
void *memmove(
void *dest,
const void *src,
size_t count
);
wchar_t *wmemmove(
wchar_t *dest,
const wchar_t *src,
size_t count
);
Parametri
dest
Oggetto di destinazione.
src
Oggetto di origine.
count
Numero di byte (memmove
) o caratteri (wmemmove
) da copiare.
Valore restituito
Valore di dest
.
Osservazioni:
Copia count
byte () o caratteri (wmemmove
memmove
) da src
a dest
. Se alcune parti dell'origine e delle aree di destinazione si sovrappongono, entrambe le funzioni assicurano che i byte di origine originali nell'area sovrapposta vengano copiati prima di essere sovrascritti.
Nota sulla sicurezza Assicurarsi che il buffer di destinazione sia sufficientemente grande da contenere il numero di caratteri spostati. Per altre informazioni, vedere Evitare sovraccarichi del buffer.
Le memmove
funzioni e wmemmove
sono deprecate solo se la costante _CRT_SECURE_DEPRECATE_MEMORY
viene definita prima dell'istruzione #include
, come illustrato nell'esempio seguente:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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
Vedi anche
Manipolazione del buffer
_memccpy
memcpy
, wmemcpy
strcpy
, wcscpy
, _mbscpy
strncpy
, _strncpy_l
, wcsncpy
, _wcsncpy_l
, _mbsncpy
_mbsncpy_l