memmove, wmemmove
Déplace un tampon vers un autre. Des versions plus sécurisées de ces fonctions sont disponibles ; consultez 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
);
Paramètres
dest
Objet de destination.src
Objet sourcecount
Nombre d'octets (memmove) ou de caractères (wmemmove) à copier.
Valeur de retour
Valeur de dest*.*
Notes
Copie count octets memmove ou des caractères wmemmove depuis.src vers dest*.* Si certaines régions de la zone de source et de destination se chevauchent, les deux foncitons garantissent que les octets de source d'origine dans la région de chevauchement sont copiés avant d'être remplacés.
Remarque sur la sécurité : Assurez -vous que la mémoire tampon de destination est la même taille ou supérieure à la mémoire tampon source. Pour plus d'informations, consultez Solutions contre les dépassements de mémoire tampon.
Les fonctions memmove et wmemmove seront déconseillées uniquement si la constante _CRT_SECURE_DEPRECATE_MEMORY est définie avant l'instruction d'inclusion pour que les fonctions soient déconseillées, comme dans l'exemple ci-dessous :
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Configuration requise
Routine |
En-tête requis |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
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 );
}
Équivalent .NET Framework
Voir aussi
Référence
Manipulation de la mémoire tampon
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l