memcpy - Rückgabewert
-
Hallo,
memcpy hat ja die Signatur
void *memcpy(void *dest, const void *src, size_t n);
Wobei der Rückgabewert ein Pointer auf dest sein soll.
Wenn ich das richtig verstehe ist also der Rückgabewert == dest.Warum aber wird ein Pointer zurückgegeben, den man bereits bei Aufruf übergibt, der also schon bekannt ist?
-
Das erlaubt dir, Funktionsaufrufe zu verschachteln oder den Rückgabewert in einer Zuweisung zu benutzen. Beispiele (relativ sinnlos, bloß zur Demonstration):
char old_buf[40]; // Buffer 20 Zeichen weiterverschieben char *new_buf = memcpy(old_buf + 20, old_buf, 20);
// Hier Verkettung von Funktionsaufrufen mit Zeichenketten, da mir spontan // nichts sinnvolles für memcpy einfällt. Gibt es aber sicherlich auch! char buf[100]; strcat(strcpy(buf, "Hallo"), " Welt");
-
Vielen Dank!