Freigeben über


memmove, wmemmove

Wechselt ein Puffer zu anderen. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter 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
);

Parameter

  • dest
    Zielobjekt.

  • src
    Quellobjekt.

  • count
    Anzahl Bytes (memmove) oder (wmemmove) zu kopieren.

Rückgabewert

Der Wert von dest*.*

Hinweise

Kopien count Bytes (memmove) oder (wmemmove) von src in dest*.* Wenn einige Bereiche des Ursprungsbereichs und des Ziels überschneiden, sicherstellen beide Features, dass die ursprüngliche Quellbytes im überlappenden Bereich kopiert werden, bevor sie überschrieben wird.

Sicherheitshinweis Überprüfen, ob der Zielpuffer die gleiche Größe oder das größer als Quellpuffer ist. Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.

Die Funktionen memmove und wmemmove werden nur, wenn die Konstante _CRT_SECURE_DEPRECATE_MEMORY vor der Inklusionsanweisung definiert wird, damit die Funktionen veraltet sein können, wie im nachfolgenden Beispiel veraltet:

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

Anforderungen

Routine

Erforderlicher Header

memmove

<string.h>

wmemmove

<wchar.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

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

.NET Framework-Entsprechung

System::Buffer::BlockCopy

Siehe auch

Referenz

Pufferbearbeitung

_memccpy

memcpy, wmemcpy

strcpy, wcscpy, _mbscpy

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l