Header-Datei:
Saite.HSyntax:
void *mempcpy (void *dest, const void *src, size_t size)Argumente:
Die Funktion dauert 3 Argumente:
Dies ist ein Startzeiger eines Speicherblocks src (2. Argument) wird kopiert. Der Zeiger wird als nichtig erklärt, sodass jeder Art von Speicherblock kopiert werden kann.
Dies ist ein Startzeiger des Quellspeicherblocks, von dem der Speicherblock kopiert wird. Der Zeiger wird als nichtig erklärt, sodass jeder Art von Speicherblock kopiert werden kann.
Dies ist die Größe des Speicherblocks in Bytes.
Der Wert des beiden Zeigers Ziel Und src sollte so sein, dass sich zwei Speicherblöcke nicht überlappen. Die Größe der Speicherblöcke von Quelle und Ziel muss mindestens von sein Größe (3. Argument) Bytes, um überlappende Situationen zu vermeiden. Wenn die beiden Speicherblöcke überlappt werden, ist das Verhalten der memcpy () Funktion ist undefiniert. Wenn es eine Möglichkeit gibt, sich zu überlappen, können Sie die verwenden memmove () Bibliotheksfunktion, bei der sich überlappend gut definiert ist. memmove () Funktion ist langsamer im Vergleich zu memcpy () Funktion.
Aufgrund des Wertes von Größe, Wenn auf die Quelle oder das Ziel über ihre Pufferlänge hinausgerufen wird, ist das Verhalten der memcpy () Funktion ist undefiniert.
Der memcpy () Die Funktion prüft nicht, ob das Zeichen des '\ 0' beendet wird.
Rückgabewerte:
Diese Funktion gibt den Wert der Zieladresse zurück Ziel. Als Wert von Ziel ist bereits verfügbar, so dass es in keiner Variablen speichern muss.
Beispiele:
//Beispiel 1.CIn Beispiel1.C Wir haben ein Array mit zwei Zeichen deklariert src Und Ziel. Die grosse von src ist 6 und die Ziel ist 13. Zuerst haben wir 6 Zeichen 'H', 'E', 'L', 'L', 'O', '\ 0' kopiert src Zu Ziel (Zeile 11). In der zweiten Memcpy () -Funktion kopierte 8 Zeichen ", 'w', 'o', 'r', 'l', 'd', ''!',' \ 0 'zum Dest nach 5 Zeichen (Zeile 15). Bildend können wir dies wie folgt darstellen:
// Beispiel2.CIn Beispiel2.c Wir haben zwei Struktur deklariert Student1 Und Student2 (Zeile 15 und 16). Zunächst initialisieren wir Student1 (Zeile 19, 20, 21). Danach verwenden wir memcpy Daten von kopieren von Student1 Zu Student2.
Abschluss:
In diesem Artikel haben wir gelernt, wie man das benutzt memcpy Funktion. Wir haben gesehen, dass diese Funktion für jede Art von Speicherblock verwendet werden kann, aber diese Funktion hat einige Einschränkungen. Sie müssen diese Funktion also sorgfältig verwenden.