Partager via


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 source

  • count
    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

System::Buffer::BlockCopy

Voir aussi

Référence

Manipulation de la mémoire tampon

_memccpy

memcpy, wmemcpy

strcpy, wcscpy, _mbscpy

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l