C-Programmierung

So verwenden Sie die memcpy-Funktion in der Sprache C?

So verwenden Sie die memcpy-Funktion in der Sprache C?
In der Sprache C wird die Funktion memcpy() verwendet, um einen Speicherblock von einem Ort an einen anderen zu kopieren copy. In diesem Artikel werden wir im Detail diskutieren, wie die Funktion memcpy() verwendet wird. Also lasst uns anfangen.

Header-Datei:

Schnur.ha

Syntax:

void * memppcpy (void *dest, const void *src, size_t size)

Argumente:

Die Funktion benötigt 3 Argumente:

  1. Ziel:
  2. Dies ist ein Startzeiger eines Speicherblocks, auf den der Speicherblock mit zeigt src (2. Argument) wird kopiert. Der Zeiger wird als void deklariert, sodass jede Art von Speicherblock kopiert werden kann.

  3. src:
  4. Dies ist ein Startzeiger des Quellspeicherblocks, von dem der Speicherblock kopiert wird. Der Zeiger wird als void deklariert, sodass jede Art von Speicherblock kopiert werden kann.

  5. Größe :
  6. Dies ist die Größe des Speicherblocks in Bytes.

Der Wert der beiden Zeiger dest und src sollte so sein, dass sich zwei Speicherblöcke nicht überlappen. Die Größe der Speicherblöcke von Quelle und Ziel muss mindestens Größe (3. Argument) Bytes, um überlappende Situationen zu vermeiden. Überlappen sich die beiden Speicherblöcke, dann ist das Verhalten der of memcpy() Funktion ist undefiniert. Bei Überschneidungen können Sie die memmove() Bibliotheksfunktion, bei der Überlappungen gut definiert sind. memmove() Funktion ist langsamer als memcpy() Funktion.

Aufgrund des Wertes von Größe, Wenn auf die Quelle oder das Ziel über ihre Pufferlänge hinaus zugegriffen wird, wird das Verhalten der of memcpy() Funktion ist undefiniert.

Das memcpy() Funktion prüft nicht, um das Zeichen '\0' zu beenden.

Rückgabewerte:

Diese Funktion gibt den Wert der Zieladresse zurück dest. Als Wert von dest ist bereits verfügbar, muss also nicht in einer Variablen gespeichert werden.

Beispiele:

//Beispiel 1.c
#einschließen
#einschließen
int main()

char src[] = "Hallo";
char dest[13];
memcpy(ziel,src,6);
printf("Ziel nach erstem memcpy() => %s\n",Ziel);
memcpy(dest+sizeof(src)-1," world!",8);
printf("Ziel nach zweitem memcpy() => %s\n",Ziel);
0 zurückgeben;

In Beispiel1.c Wir haben ein zweistelliges Array deklariert src und dest. Die grosse von src ist 6 und die dest ist 13. Zuerst kopierten wir 6 Zeichen 'H', 'e', ​​'l', 'l', 'o', '\0' von src zu dest ( Zeile 11 ). In der zweiten memcpy() Funktion kopiert 8 Zeichen", 'w', 'o', 'r', 'l', 'd', '!', '\0' zum Ziel nach 5 Zeichen ( Zeile 15 ). Bildlich können wir dies wie folgt darstellen:

//Beispiel2.c
#einschließen
#einschließen
int main()

typedef struct student

Zeichen *Name;
int-ID;
int Alter;
std;
Standardschüler1; // Deklariere student1 vom Typ std
Std-Student2; // Deklariere student2 vom Typ std
// Zuweisen des Wertes von sudent1
Schüler1.name = "Bamdev Ghosh";
Schüler1.id = 1105;
Schüler1.Alter = 30;
printf("Student1:\n\tName : %s\n\tid : %d\n\tage : %d\n",student1.Name,
Schüler1.id,student1.Alter);
// kopiere student1 nach student2
memcpy(&student2, &student1, sizeof(student1));
printf("\n\nNach memcpy:");
printf("\n\nSchüler2:\n\tName : %s\n\tid : %d\n\tage : %d\n",
student2.name,student2.id,student2.Alter);
0 zurückgeben;

In Beispiel2.c wir haben zwei Strukturen deklariert Schüler1 und student2 (Linie 15 und 16). Zuerst initialisieren wir student1 (Zeile 19, 20, 21). Danach verwenden wir memcpy Daten kopieren von Schüler1 zu student2.

Fazit:

In diesem Artikel haben wir gelernt, wie man die 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.

Top 5 ergonomische Computermaus-Produkte für Linux
Verursacht längere Computernutzung Schmerzen im Handgelenk oder in den Fingern?? Leiden Sie unter steifen Gelenken und müssen ständig die Hände schütt...
So ändern Sie die Maus- und Touchpad-Einstellungen mit Xinput in Linux
Die meisten Linux-Distributionen werden standardmäßig mit der Bibliothek „libinput“ ausgeliefert, um Eingabeereignisse auf einem System zu verarbeiten...
Weisen Sie Ihre Maustasten mit der X-Mouse Button Control für verschiedene Software unterschiedlich zu
Vielleicht benötigen Sie ein Tool, mit dem sich die Steuerung Ihrer Maus bei jeder von Ihnen verwendeten Anwendung ändern kann. In diesem Fall können ...

Neueste Artikel zu Betriebssystemen. Viele interessante Ratgeber und nützliche Tipps. Fühlen Sie sich wie Ihr eigenes in der Welt der modernen Technologie