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
Viz také
Referenční dokumentace
Zacházení s vyrovnávací pamětí
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l