Condividi tramite


memmove, wmemmove

Sposta un buffer in un altro. Sono disponibili versioni più sicure di queste funzioni. Vedere 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
);

Parametri

  • dest
    Oggetto di destinazione.

  • src
    Oggetto di origine.

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

Valore restituito

Valore di dest*.*

Note

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

Nota sulla sicurezza Assicurarsi che il buffer di destinazione sia della stessa dimensione o di una dimensione maggiore del buffer di origine. Per ulteriori informazioni, vedere Evitare sovraccarichi del buffer.

Le funzioni memmove e di wmemmove verranno deprecate solo se la costante _CRT_SECURE_DEPRECATE_MEMORY è definita prima dell'istruzione di inclusione in modo che funzioni vengano deprecate, come nell'esempio seguente:

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>

Requisiti

Routine

Intestazione obbligatoria

memmove

<string.h>

wmemmove

<wchar.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.

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 );
}
  

Equivalente .NET Framework

System::Buffer::BlockCopy

Vedere anche

Riferimenti

Modifica del buffer

_memccpy

memcpy, wmemcpy

strcpy, wcscpy, _mbscpy

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l