memmove
, wmemmove
Przenosi jeden bufor do drugiego. Dostępne są bezpieczniejsze wersje tych funkcji; zobacz memmove_s
, wmemmove_s
.
Składnia
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
Obiekt docelowy.
src
Obiekt źródłowy.
count
Liczba bajtów () lub znaków (memmove
wmemmove
) do skopiowania.
Wartość zwracana
Wartość dest
.
Uwagi
Kopiuje bajty count
() lub znaki (wmemmove
memmove
) z src
do dest
. Jeśli niektóre części źródła i regionów docelowych nakładają się na siebie, obie funkcje zapewniają skopiowanie oryginalnych bajtów źródłowych w nakładających się regionach przed zastąpieniem.
Uwaga zabezpieczeń Upewnij się, że bufor docelowy jest wystarczająco duży, aby pomieścić liczbę przeniesionych znaków. Aby uzyskać więcej informacji, zobacz Unikanie przekroków buforu.
memmove
Funkcje i wmemmove
są przestarzałe tylko wtedy, gdy stała _CRT_SECURE_DEPRECATE_MEMORY
jest zdefiniowana przed instrukcją #include
, jak pokazano w poniższym przykładzie:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
lub
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Wymagania
Procedura | Wymagany nagłówek |
---|---|
memmove |
<string.h> |
wmemmove |
<wchar.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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
Zobacz też
Manipulowanie buforem
_memccpy
memcpy
, wmemcpy
strcpy
, , wcscpy
_mbscpy
strncpy
, , _strncpy_l
, wcsncpy
, _wcsncpy_l
, , _mbsncpy
_mbsncpy_l