Condividi tramite


memmove, wmemmove

Sposta un buffer in un altro. Sono disponibili versioni più sicure di queste funzioni; vedere memmove_s, wmemmove_s.

Sintassi

void *memmove(
   void *dest,
   const void *src,
   size_t count
);
wchar_t *wmemmove(
   wchar_t *dest,
   const wchar_t *src,
   size_t count
);

Parametri

dest
Oggetto di destinazione.

src
Oggetto di origine.

count
Numero di byte (memmove) o caratteri (wmemmove) da copiare.

Valore restituito

Valore di dest.

Osservazioni:

Copia count byte () o caratteri (wmemmovememmove) da src a dest. Se alcune parti dell'origine e delle aree di destinazione si sovrappongono, entrambe le funzioni assicurano che i byte di origine originali nell'area sovrapposta vengano copiati prima di essere sovrascritti.

Nota sulla sicurezza Assicurarsi che il buffer di destinazione sia sufficientemente grande da contenere il numero di caratteri spostati. Per altre informazioni, vedere Evitare sovraccarichi del buffer.

Le memmove funzioni e wmemmove sono deprecate solo se la costante _CRT_SECURE_DEPRECATE_MEMORY viene definita prima dell'istruzione #include , come illustrato nell'esempio seguente:

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>

or

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>

Requisiti

Ciclo Intestazione obbligatoria
memmove <string.h>
wmemmove <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

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

Vedi anche

Manipolazione del buffer
_memccpy
memcpy, wmemcpy
strcpy, wcscpy, _mbscpy
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy_mbsncpy_l