C Programmering

Hvordan bruke memcpy-funksjon på C-språk?

Hvordan bruke memcpy-funksjon på C-språk?
I C-språket brukes memcpy () -funksjonen til å kopiere en blokk med minne fra ett sted til et annet. I denne artikkelen skal vi diskutere i detalj hvordan memcpy () -funksjonen brukes. Så la oss komme i gang.

Overskriftsfil:

streng.h

Syntaks:

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

Argumenter:

Funksjonen tar 3 argumenter:

  1. dest:
  2. Dette er en startpeker på en minneblokk der minneblokken pekte av src (2. argument) vil bli kopiert. Pekeren er erklært ugyldig, slik at alle typer minneblokker kan kopieres.

  3. src:
  4. Dette er en startpeker på kildeminneblokken der minneblokken skal kopieres fra. Pekeren er erklært ugyldig, slik at alle typer minneblokker kan kopieres.

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

Verdien av topekeren dest og src skal være på en slik måte at to minneblokker ikke overlapper hverandre. Størrelsen på minneblokker for kilde og destinasjon må være minst størrelse (3. argument) byte for å unngå overlappende situasjoner. Hvis de to minneblokkene overlapper hverandre, oppførselen til memcpy () funksjonen er udefinert. Når det er mulighet for overlapping, kan du bruke memmove () biblioteksfunksjon der overlapping er godt definert. memmove () funksjonen er tregere sammenlignet med memcpy () funksjon.

På grunn av verdien av størrelse, Hvis kilden eller destinasjonen er tilgjengelig utenfor buffellengden, vil oppførselen til memcpy () funksjonen er udefinert.

De memcpy () funksjonen sjekker ikke for å avslutte '\ 0' tegn.

Returverdier:

Denne funksjonen returnerer verdien til destinasjonsadressen dest. Som verdien av dest er allerede tilgjengelig, så det trenger ikke å lagres i noen variabel.

Eksempler:

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

char src [] = "Hei";
char dest [13];
memcpy (dest, src, 6);
printf ("dest etter første memcpy () =>% s \ n", dest);
memcpy (dest + sizeof (src) -1, "verden!", 8);
printf ("dest etter andre memcpy () =>% s \ n", dest);
retur 0;

I eksempel 1.c vi har deklarert to-tegns matrise src og dest. Størrelsen på src er 6 og dest er 13. Først kopierte vi 6 tegn 'H', 'e', ​​'l', 'l', 'o', '\ 0' fra src til dest (Linje 11). I den andre memcpy () -funksjonen kopieres 8 tegn ", 'w', 'o', 'r', 'l', 'd', '!',' \ 0 'til dest etter 5 tegn (linje 15). Bildemessig kan vi representere dette som følger:

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

typedef struct student

røye * navn;
int id;
int alder;
std;
std student1; // Erklare student1 av typen std
std student2; // Erklare student2 av typen std
// Tilordne verdien av sudent1
student1.name = "Bamdev Ghosh";
student1.id = 1105;
student1.alder = 30;
printf ("Student1: \ n \ tName:% s \ n \ tid:% d \ n \ tage:% d \ n", student1.Navn,
student1.id, student1.alder);
// Kopier student1 til student2
memcpy (& student2, & student1, sizeof (student1));
printf ("\ n \ nEtter memcpy:");
printf ("\ n \ nStudent2: \ n \ tNavn:% s \ n \ tid:% d \ n \ tage:% d \ n",
student2.navn, student2.id, student2.alder);
retur 0;

I eksempel 2.c vi har deklarert to strukturer student1 og student2 (Linje 15 og 16). Først initialiserer vi student1 (linje 19, 20, 21). Etter det bruker vi memcpy å kopiere data fra student1 til student2.

Konklusjon:

I denne artikkelen har vi lært hvordan du bruker memcpy funksjon. Vi har sett at denne funksjonen kan brukes til alle typer minneblokker, men denne funksjonen har noen begrensninger. Så du må bruke denne funksjonen nøye.

Mus WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
Hvis du vil forbedre standardfunksjonene til musepekeren, bruk freeware WinMouse. Det legger til flere funksjoner som hjelper deg å få mest mulig ut a...
Mus Mus venstreklikknapp fungerer ikke på Windows 10
Mus venstreklikknapp fungerer ikke på Windows 10
Hvis du bruker en dedikert mus med den bærbare eller stasjonære datamaskinen, men museklikk-knappen fungerer ikke på Windows 10/8/7 av en eller annen ...
Mus Markøren hopper eller beveger seg tilfeldig mens du skriver inn Windows 10
Markøren hopper eller beveger seg tilfeldig mens du skriver inn Windows 10
Hvis du finner ut at musemarkøren hopper eller beveger seg alene, automatisk, tilfeldig mens du skriver inn Windows-bærbar PC eller datamaskin, kan no...

Siste artikler om operativsystemer. Mange interessante guider og nyttige tips. Føler deg som din egen i verden av moderne teknologi