Udostępnij za pośrednictwem


memmove, wmemmove

Przenosi jeden bufor do innego.Bezpieczniejsze wersje te funkcje są dostępne; 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
    Obiekt docelowy.

  • src
    Obiekt źródłowy.

  • count
    Liczba bajtów (memmove) lub znaki (wmemmove) do skopiowania.

Wartość zwracana

The value of dest*.*

Uwagi

Copies count bytes (memmove) or characters (wmemmove) from src to dest*.* W niektórych regionach obszar źródłowy i docelowy nachodzą na siebie, obie funkcje zapewnienia, że oryginalny bajtów źródła w regionie nakładające się są kopiowane przed zastąpieniem.

Uwaga zabezpieczeń upewnij się, że bufor docelowy jest taki sam lub większy rozmiar niż bufor źródła.Aby uzyskać więcej informacji, zobacz Overruns buforu unikanie.

memmove i wmemmove funkcje będą przestarzałe tylko, jeśli stała _CRT_SECURE_DEPRECATE_MEMORY jest zdefiniowana przed do włączenia instrukcji w celu obowiązków, które mają być zaniechane, takich jak w poniższym przykładzie:

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

memmove

<string.h>

wmemmove

<wchar.h>

Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.

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 );
}
  

Odpowiednik w programie .NET Framework

System::Buffer::BlockCopy

Zobacz też

Informacje

Manipulowanie buforu

_memccpy

memcpy, wmemcpy

strcpy, wcscpy, _mbscpy

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l