C Programmering

Hur man använder memcpy-funktionen på C-språk?

Hur man använder memcpy-funktionen på C-språk?
I C-språket används memcpy () för att kopiera ett minnesblock från en plats till en annan. I den här artikeln ska vi diskutera i detalj hur memcpy () -funktionen används. Så, låt oss komma igång.

Rubrikfil:

sträng.h

Syntax:

ogiltig * mempcpy (ogiltig * dest, const ogiltig * src, storlek_t storlek)

Argument:

Funktionen tar 3 argument:

  1. dest:
  2. Detta är en startpekare för ett minnesblock där minnesblocket pekar av src (Andra argumentet) kommer att kopieras. Pekaren deklareras som ogiltig så att alla typer av minnesblock kan kopieras.

  3. src:
  4. Detta är en startpekare för källminnesblocket varifrån minnesblocket kommer att kopieras. Pekaren deklareras som ogiltig så att alla typer av minnesblock kan kopieras.

  5. storlek:
  6. Detta är storleken på minnesblocket i byte.

Värdet på tvåpekaren dest och src bör vara på ett sådant sätt att två minnesblock inte överlappar varandra. Storleken på minnesblock för källa och destination måste vara minst storlek (3: e argument) byte för att undvika överlappande situationer. Om de två minnesblocken överlappar varandra fungerar beteendet hos memcpy () funktionen är odefinierad. När det finns en möjlighet till överlappning kan du använda memmove () biblioteksfunktion där överlappning är väldefinierad. memmove () funktionen är långsammare jämfört med memcpy () fungera.

På grund av värdet av storlek, om källan eller destinationen nås utöver deras buffertlängd så uppför sig memcpy () funktionen är odefinierad.

De memcpy () funktionen markerar inte för att avsluta '\ 0' karaktär.

Returvärden:

Denna funktion returnerar värdet på destinationsadressen dest. Som värdet av dest är redan tillgänglig så behöver den inte lagras i någon variabel.

Exempel:

// Exempel1.c
#omfatta
#omfatta
int main ()

char src [] = "Hej";
char dest [13];
memcpy (dest, src, 6);
printf ("dest efter första memcpy () =>% s \ n", dest);
memcpy (dest + sizeof (src) -1, "world!", 8);
printf ("dest efter andra memcpy () =>% s \ n", dest);
returnera 0;

I exempel 1.c vi har deklarerat två tecken src och dest. Storleken på src är 6 och dest är 13. Först kopierade vi 6 tecken 'H', 'e', ​​'l', 'l', 'o', '\ 0' från src till dest (Rad 11). I den andra memcpy () -funktionen kopierades åtta tecken ", 'w', 'o', 'r', 'l', 'd', '!',' \ 0 'till dest efter 5 tecken (rad 15). Bildmässigt kan vi representera detta enligt följande:

// Exempel2.c
#omfatta
#omfatta
int main ()

typedef struct student

karaktärsnamn;
int id;
int ålder;
std
std student1; // Förklara student1 av typen std
std student2; // Förklara student2 av typ std
// Tilldela värdet av sudent1
student1.namn = "Bamdev Ghosh";
student1.id = 1105;
student1.ålder = 30;
printf ("Student1: \ n \ tNamn:% s \ n \ tid:% d \ n \ tage:% d \ n", student1.namn,
student1.id, student1.ålder);
// Kopiera student1 till student2
memcpy (& student2, & student1, sizeof (student1));
printf ("\ n \ nEfter memcpy:");
printf ("\ n \ nStudent2: \ n \ tNamn:% s \ n \ tid:% d \ n \ tage:% d \ n",
student2.namn, student2.id, student2.ålder);
returnera 0;

I exempel 2.c vi har förklarat två strukturer student1 och student2 (Rad 15 och 16). Först initialiserar vi student1 (rad 19, 20, 21). Efter det använder vi memcpy att kopiera data från student1 till student2.

Slutsats:

I den här artikeln har vi lärt oss hur man använder memcpy fungera. Vi har sett att denna funktion kan användas för alla typer av minnesblock men den här funktionen har vissa begränsningar. Så du måste använda den här funktionen noggrant.

Mus Lägg till musgester i Windows 10 med dessa gratisverktyg
Lägg till musgester i Windows 10 med dessa gratisverktyg
Under senare år har datorer och operativsystem utvecklats kraftigt. Det fanns en tid då användare var tvungna att använda kommandon för att navigera g...
Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...

Senaste artiklarna om operativsystem. Massor av intressanta guider och användbara tips. Känn dig som din egen i modern teknik