memmove()

memmove ist definiert in der string, die in C über string.h, bzw. in C++ über cstring eingebunden wird.

Funktion

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.

Signatur

#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.

Fehlerquellen

Die Anzahl Bytes, die zu kopieren sind, müssen kleiner oder gleich der Größe der Quell- und Zielspeicherblöcke sein.

Beispiel

#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!

siehe auch