Freigeben über


memmove, wmemmove

Verschiebt einen Puffer in einen anderen. Sicherere Versionen dieser Funktionen sind verfügbar. Informationen dazu finden Sie unter memmove_s, wmemmove_s.

Syntax

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 der zu kopierenden Bytes (memmove) oder Zeichen (wmemmove).

Rückgabewert

Der Wert von dest.

Hinweise

Kopiert count-Bytes (memmove) oder Zeichen (wmemmove) von src nach dest. Wenn einige Teile der Quell- und des Zielregionen überlappen, stellen beide Funktionen sicher, dass die ursprünglichen Quellbytes in der überlappenden Region kopiert werden, bevor sie überschrieben werden.

Sicherheitshinweis Stellen Sie sicher, dass der Zielpuffer groß genug ist, um die Anzahl der verlagerten Zeichen zu verarbeiten. Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.

Die Funktionen memmove und wmemmove sind nur veraltet, wenn die Konstante _CRT_SECURE_DEPRECATE_MEMORY vor der #include-Anweisung definiert wird, wie in den folgenden Beispielen gezeigt:

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <string.h>

oder

#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>

Anforderungen

Routine Erforderlicher Header
memmove <string.h>
wmemmove <wchar.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

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 );
}
The string: aabbcc
New string: aaaabb
The string: aabbcc
New string: aaaabb

Siehe auch

Pufferbearbeitung
_memccpy
memcpy, wmemcpy
strcpy, wcscpy, _mbscpy
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l