memmove, wmemmove

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Déplace une mémoire tampon à l’autre. Des versions plus sécurisées de ces fonctions sont disponibles. consultez la page 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 source.

count
Nombre d’octets (memmove) ou de caractères (wmemmove) à copier.

La valeur de dest .

Copies count octets (memmove) ou de caractères (wmemmove) à partir de src à dest . En cas de chevauchement de certaines régions de la zone source et destination, les deux fonctions Vérifiez que les octets de code source d’origine dans la région de chevauchement sont copiés avant d’être remplacés.

Note de sécurité vous assurer que le 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 seulement 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>  

RoutineEn-tête requis
memmove<string.h>
wmemmove<wchar.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

// 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  

System::buffer::BlockCopy

Manipulation de la mémoire tampon
_memccpy
memcpy wmemcpy
strcpy, wcscpy, _mbscpy
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l

Afficher: