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 (memmovewmemmove) do skopiowania.

Wartość zwracana

Wartość dest.

Uwagi

Kopiuje bajty count () lub znaki (wmemmovememmove) 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