memmove ist definiert in der string
, die in C über string.h
, bzw. in C++ über cstring
eingebunden wird.
memmove() verschiebt einen Speicherblock der Größe size
von source
an target
. Quelle und Ziel dürfen sich überlappen, die Quelle wird nicht überschrieben.
Der zu kopierende Speicherblock wird byteweise kopiert und erstellt eine binäre Kopie von dessen Inhalt, unabhängig vom Datentyp.
#include <string.h> void * memmove( void * target, const void * source, size_t size );
target: Zielspeicherblock (mindestens size
Byte groß)
source: Quellspeicherblock (mindestens size
Byte groß)
size: Anzahl zu kopierender Bytes (Der Typ size_t
entspricht i.d.R. Int))
Return value: Die Rückgabe entspricht target
.
Die Anzahl Bytes, die zu kopieren sind, müssen kleiner oder gleich der Größe der Quell- und Zielspeicherblöcke sein.
#include <stdio.h> #include <string.h> int main () { char str[20] = "Moin User!"; memmove( str+5, str, 12 ); puts( str ); return 0; }
Ausgabe:
Moin Moin User!