C Programmering

Sådan bruges memcpy-funktionen på C-sprog?

Sådan bruges memcpy-funktionen på C-sprog?
I C-sproget bruges memcpy () til at kopiere en hukommelsesblok fra et sted til et andet. I denne artikel skal vi diskutere detaljeret, hvordan memcpy () -funktionen bruges. Så lad os komme i gang.

Overskriftsfil:

snor.h

Syntaks:

ugyldig * mempcpy (ugyldig * dest, const ugyldig * src, størrelse_t størrelse)

Argumenter:

Funktionen tager 3 argumenter:

  1. dest:
  2. Dette er en startmarkør for en hukommelsesblok, hvor hukommelsesblokken peger ved src (2. argument) kopieres. Markøren erklæres ugyldig, så enhver form for hukommelsesblok kan kopieres.

  3. src:
  4. Dette er en startmarkør for kildehukommelsesblokken, hvorfra hukommelsesblokken kopieres. Markøren erklæres ugyldig, så enhver form for hukommelsesblok kan kopieres.

  5. størrelse:
  6. Dette er størrelsen på hukommelsesblokken i byte.

Værdien af ​​de to markører dest og src skal være på en sådan måde, at to hukommelsesblokke ikke overlapper hinanden. Størrelsen på hukommelsesblokke for kilde og destination skal være mindst størrelse (3. argument) bytes for at undgå overlapning af situationer. Hvis de to hukommelsesblokke overlapper hinanden, fungerer adfærden for memcpy () funktion er udefineret. Når der er mulighed for overlapning, kan du bruge memmove () biblioteksfunktion, hvor overlappende er veldefineret. memmove () funktion er langsommere sammenlignet med memcpy () fungere.

På grund af værdien af størrelse, hvis der er adgang til kilden eller destinationen ud over deres bufferlængde, så fungerer adfærden for memcpy () funktion er udefineret.

Det memcpy () funktion markerer ikke for at afslutte '\ 0' tegn.

Returværdier:

Denne funktion returnerer værdien for destinationsadressen dest. Som værdien af dest er allerede tilgængelig, så det behøver ikke at gemme i nogen variabel.

Eksempler:

// Eksempel1.c
#omfatte
#omfatte
int main ()

char src [] = "Hej";
char dest [13];
memcpy (dest, src, 6);
printf ("dest efter første memcpy () =>% s \ n", dest);
memcpy (dest + sizeof (src) -1, "verden!", 8);
printf ("dest efter anden memcpy () =>% s \ n", dest);
returnere 0;

I eksempel 1.c vi har deklareret to-tegns array src og dest. Størrelsen på src er 6 og dest er 13. Først kopierede vi 6 tegn 'H', 'e', ​​'l', 'l', 'o', '\ 0' fra src til dest (Linie 11). I den anden memcpy () -funktion blev der kopieret 8 tegn ", 'w', 'o', 'r', 'l', 'd', '!',' \ 0 'til dest efter 5 tegn (linje 15). Billedmæssigt kan vi repræsentere dette som følger:

// Eksempel2.c
#omfatte
#omfatte
int main ()

typedef struct studerende

char * navn;
int id;
int alder
std
std student1; // Erklær student1 af typen std
std student2; // Erklær student2 af typen std
// Tildeling af værdien af ​​sudent1
studerende1.name = "Bamdev Ghosh";
studerende1.id = 1105;
studerende1.alder = 30;
printf ("Student1: \ n \ t Navn:% s \ n \ tid:% d \ n \ tage:% d \ n", student1.navn,
studerende1.id, student1.alder);
// Kopier student1 til elev2
memcpy (& student2, & student1, sizeof (student1));
printf ("\ n \ nEfter memcpy:");
printf ("\ n \ nStudent2: \ n \ t Navn:% s \ n \ tid:% d \ n \ tage:% d \ n",
studerende2.navn, studerende2.id, student2.alder);
returnere 0;

I eksempel 2.c vi har deklareret to struktur studerende1 og studerende2 (Linie 15 og 16). Først initialiserer vi student1 (linje 19, 20, 21). Derefter bruger vi memcpy at kopiere data fra studerende1 til studerende2.

Konklusion:

I denne artikel har vi lært, hvordan man bruger memcpy fungere. Vi har set, at denne funktion kan bruges til enhver form for hukommelsesblok, men denne funktion har nogle begrænsninger. Så du skal bruge denne funktion omhyggeligt.

Mus Museklik på venstre museknap fungerer ikke på Windows 10
Museklik på venstre museknap fungerer ikke på Windows 10
Hvis du bruger en dedikeret mus med din bærbare computer eller stationære computer, men musens venstre-klik-knap fungerer ikke på Windows 10/8/7 af en...
Mus Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Hvis du finder ud af, at din musemarkør hopper eller bevæger sig alene, automatisk tilfældigt, mens du skriver Windows-bærbar computer eller computer,...
Mus Sådan vender du musens og touchpadsens rulle retning i Windows 10
Sådan vender du musens og touchpadsens rulle retning i Windows 10
Mus og Touchpads gør ikke kun computing let, men mere effektiv og mindre tidskrævende. Vi kan ikke forestille os et liv uden disse enheder, men det er...

Seneste artikler om operativsystemer. Masser af interessante guider og nyttige tip. Føles som din egen i verdenen med moderne teknologi