memmove
, wmemmove
Déplace une mémoire tampon vers une autre. Des versions plus sécurisées de ces fonctions sont disponibles. Consultez memmove_s
, wmemmove_s
.
Syntaxe
void *memmove(
void *dest,
const void *src,
size_t count
);
wchar_t *wmemmove(
wchar_t *dest,
const wchar_t *src,
size_t count
);
Paramètres
dest
Objet de destination.
src
Objet source.
count
Nombre d’octets (memmove
) ou de caractères (wmemmove
) à copier.
Valeur retournée
la valeur de la propriété dest
;
Notes
Copie count
octets (memmove
) ou caractères (wmemmove
) de src
vers dest
. Si certaines parties des régions source et de destination se chevauchent, les deux fonctions garantissent que les octets sources d’origine dans la région de chevauchement sont copiés avant d’être remplacés.
Remarque relative à la sécurité Veillez à ce que la mémoire tampon de destination soit suffisamment grande pour prendre en charge le nombre de caractères déplacés. Pour plus d’informations, consultez Solutions contre les dépassements de mémoire tampon.
Les fonctions memmove
et wmemmove
sont déconseillées uniquement si la constante _CRT_SECURE_DEPRECATE_MEMORY
est définie avant l’instruction #include
, comme illustré dans l’exemple suivant :
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Spécifications
Routine | En-tête requis |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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
Voir aussi
Manipulation de la mémoire tampon
_memccpy
memcpy
, wmemcpy
strcpy
, wcscpy
, _mbscpy
strncpy
, _strncpy_l
, wcsncpy
, _wcsncpy_l
, _mbsncpy
, _mbsncpy_l