Sdílet prostřednictvím


memmove, wmemmove

Přesune jeden vyrovnávací paměti do jiného.Bezpečnější verze tyto funkce jsou k dispozici; see 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
);

Parametry

  • dest
    Cílový objekt.

  • src
    Zdrojový objekt.

  • count
    Počet bajtů (memmove) nebo znaky (wmemmove) zkopírujte.

Vrácená hodnota

The value of dest*.*

Poznámky

Copies count bytes (memmove) or characters (wmemmove) from src to dest*.* Pokud v některých oblastech oblasti zdroj a cíl překrývají, obě funkce zajistí, že původní zdroj bajtů v překrývajících se oblastí jsou zkopírovány před přepsání.

Zabezpečení přesvědčte, zda cílové vyrovnávací paměti stejně velký nebo větší než vyrovnávací paměť zdroje.Další informace naleznete v tématu Vyhnout způsobí přetečení vyrovnávací paměti.

memmove a wmemmove funkce se nepoužívá pouze pokud konstanta _CRT_SECURE_DEPRECATE_MEMORY definované před k zařazení prohlášení, aby funkce se již nepoužívá, například v následujícím příkladu je:

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

Požadavky

Rutina

Požadované záhlaví

memmove

<string.h>

wmemmove

<wchar.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

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

Ekvivalent v rozhraní .NET Framework

System::Buffer::BlockCopy

Viz také

Referenční dokumentace

Zacházení s vyrovnávací pamětí

_memccpy

memcpy, wmemcpy

strcpy, wcscpy, _mbscpy

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l