memmove, wmemmove

Verschiebt einen Puffer in einen anderen.Sicherere Versionen dieser Funktionen sind verfügbar. Weitere Informationen 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 von Bytes kopiert werden sollen (memmove) oder Zeichen (wmemmove).

Rückgabewert

Der Wert von dest*.*

Hinweise

Kopiert count Bytes (memmove) oder Zeichen (wmemmove) von src zu dest*.* Wenn einige Bereiche des Quellbereichs und des Ziels überschneiden, sicherzustellen, dass beide Funktionen die ursprüngliche Quelle in Bytes überlappenden Bereich kopiert werden, bevor diese überschrieben werden.

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

Die memmove und wmemmove-Funktionen werden nur, wenn die Konstante _CRT_SECURE_DEPRECATE_MEMORY vor der Inklusions Anweisung definiert wird, sodass die Funktionen überschrieben werden 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>

Um Kompatibilität zusätzlichen Informationen 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::Puffer::BlockCopy

Siehe auch

Referenz

Puffer-Manipulation

_memccpy

memcpy, wmemcpy

überprüfte, wcscpy, _mbscpy

strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l