Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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