Sdílet prostřednictvím


memmove, wmemmove

Přesune jednu vyrovnávací paměť do druhé. K dispozici jsou bezpečnější verze těchto funkcí; viz memmove_s, wmemmove_s.

Syntaxe

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 znaků (wmemmove) ke zkopírování

Vrácená hodnota

Hodnota .dest

Poznámky

Zkopíruje count bajty (memmove) nebo znaky (wmemmove) od src do dest. Pokud se některé části zdrojové a cílové oblasti překrývají, obě funkce zajistí, aby se před přepsáním zkopírovaly původní zdrojové bajty v překrývající se oblasti.

Poznámka zabezpečení: Ujistěte se, že je cílová vyrovnávací paměť dostatečně velká, aby vyhovovala počtu přesunutých znaků. Další informace najdete v tématu Zabránění přetečení vyrovnávací paměti.

Funkce memmove jsou wmemmove zastaralé, pouze pokud je konstanta _CRT_SECURE_DEPRECATE_MEMORY definovaná před #include příkazem, jak je znázorněno v následujícím příkladu:

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>

nebo

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>

Požadavky

Rutina Požadovaný hlavičkový soubor
memmove <string.h>
wmemmove <wchar.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

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 );
}
The string: aabbcc
New string: aaaabb
The string: aabbcc
New string: aaaabb

Viz také

Manipulace s vyrovnávací pamětí
_memccpy
memcpy, wmemcpy
strcpy, , wcscpy_mbscpy
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, , _mbsncpy_mbsncpy_l