====== memmove() ====== memmove ist definiert in der ''[[start|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 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. [[c:type: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 #include int main () { char str[20] = "Moin User!"; memmove( str+5, str, 12 ); puts( str ); return 0; } Ausgabe: Moin Moin User! ===== siehe auch ===== [[c:lib:string:start|string]]: [[c:lib:string:memcpy|memcpy()]], [[c:lib:string:memset|memset()]], [[c:lib:string:strncpy|strncpy()]]