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