C Programiranje

Kako uporabljati funkcijo memcpy v jeziku C?

Kako uporabljati funkcijo memcpy v jeziku C?
V jeziku C se funkcija memcpy () uporablja za kopiranje bloka pomnilnika z enega mesta na drugega. V tem članku bomo podrobno razpravljali o uporabi funkcije memcpy (). Torej, začnimo.

Datoteka glave:

vrvica.h

Sintaksa:

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

Argumenti:

Funkcija zajema 3 argumente:

  1. dest:
  2. To je začetni kazalec pomnilniškega bloka, kjer je pomnilniški blok označen z src (2. argument) bo kopiran. Kazalec je razglašen za void, tako da je mogoče kopirati katero koli vrsto pomnilniškega bloka.

  3. src:
  4. To je začetni kazalec izvornega pomnilniškega bloka, od koder bo pomnilniški blok kopiran. Kazalec je razglašen za prazen, zato je mogoče kopirati katero koli vrsto pomnilniškega bloka.

  5. velikost:
  6. To je velikost pomnilniškega bloka v bajtih.

Vrednost kazalca dest in src mora biti tako, da se dva pomnilniška bloka ne prekrivata. Velikost pomnilniških blokov vira in cilja mora biti najmanj velikost (3. argument) bajtov, da se prepreči prekrivanje situacij. Če se dva pomnilniška bloka prekrivata, se vedenje memcpy () funkcija ni definirana. Če obstaja možnost prekrivanja, lahko uporabite memmove () funkcija knjižnice, kjer je prekrivanje dobro definirano. memmove () funkcija je počasnejša v primerjavi z memcpy () funkcijo.

Zaradi vrednosti velikost, če se do vira ali cilja dostopa preko njihove dolžine medpomnilnika, potem je vedenje memcpy () funkcija ni definirana.

The memcpy () funkcija ne preveri, ali je znak \ \ 0 končan.

Vrnjene vrednosti:

Ta funkcija vrne vrednost ciljnega naslova dest. Kot vrednost dest je že na voljo, zato ga ni treba shraniti v nobeni spremenljivki.

Primeri:

// Primer1.c
#include
#include
int main ()

char src [] = "Pozdravljeni";
char dest [13];
memcpy (dest, src, 6);
printf ("dest po prvi memcpy () =>% s \ n", dest);
memcpy (dest + sizeof (src) -1, "svet!", 8);
printf ("dest po drugi memcpy () =>% s \ n", dest);
vrnitev 0;

V primeru1.c razglasili smo dvoznakovno polje src in dest. Velikost src je 6 in dest je 13. Najprej smo kopirali 6 znakov 'H', 'e', ​​'l', 'l', 'o', '\ 0' iz src do dest (Vrstica 11). V drugo funkcijo memcpy () je kopirano 8 znakov ", 'w', 'o', 'r', 'l', 'd', '!',' \ 0 'do cilja po 5 znakih (vrstica 15). Slikovno lahko to predstavimo na naslednji način:

// Primer2.c
#include
#include
int main ()

študent typedef struct

char * ime;
int id;
int starost;
std;
std študent1; // Prijavi študenta1 tipa std
std študent2; // Prijavi študenta2 tipa std
// Dodeljevanje vrednosti sudent1
študent1.name = "Bamdev Ghosh";
študent1.id = 1105;
študent1.starost = 30;
printf ("Študent1: \ n \ tIme:% s \ n \ tid:% d \ n \ oznaka:% d \ n", študent1.ime,
študent1.id, študent1.starost);
// Kopiraj študenta1 v študenta2
memcpy (& študent2, & študent1, velikost (študent1));
printf ("\ n \ nPo memcpy:");
printf ("\ n \ nŠtudent2: \ n \ tIme:% s \ n \ tid:% d \ n \ oznaka:% d \ n",
študent2.ime, študent2.id, študent2.starost);
vrnitev 0;

V primeru2.c razglasili smo dve strukturi študent1 in študent2 (Vrstici 15 in 16). Najprej inicializiramo student1 (vrstice 19, 20, 21). Po tem uporabimo memcpy za kopiranje podatkov iz študent1 do študent2.

Zaključek:

V tem članku smo se naučili uporabljati memcpy funkcijo. Videli smo, da je to funkcijo mogoče uporabiti za katero koli vrsto pomnilniškega bloka, vendar ima ta funkcija nekatere omejitve. Torej, to funkcijo morate uporabljati previdno.

Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...
Srednji gumb miške ne deluje v sistemu Windows 10
The srednji gumb miške vam pomaga, da se pomikate po dolgih spletnih straneh in zaslonih z veliko podatkov. Če se to ustavi, boste na koncu uporabili ...
Kako spremeniti levi in ​​desni gumb miške na računalniku z operacijskim sistemom Windows 10
Povsem normalno je, da so vse naprave računalniške miške ergonomsko zasnovane za desničarje. Na voljo pa so miške, ki so posebej zasnovane za levičarj...

Najnovejši članki o operacijskih sistemih. Veliko zanimivih vodnikov in koristnih nasvetov. V svetu sodobne tehnologije se počutite kot svoji