C Programmeren

Hoe de memcpy-functie in C-taal te gebruiken?

Hoe de memcpy-functie in C-taal te gebruiken?
In de C-taal wordt de functie memcpy() gebruikt om een ​​geheugenblok van de ene naar de andere locatie te kopiëren. In dit artikel gaan we in detail bespreken hoe de functie memcpy() wordt gebruikt. Dus laten we beginnen.

Header-bestand:

draad.h

Syntaxis:

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

Argumenten:

De functie heeft 3 argumenten:

  1. bestemming:
  2. Dit is een startpointer van een geheugenblok waar het geheugenblok naar wijst src (2e argument) wordt gekopieerd. De aanwijzer wordt ongeldig verklaard, dus elk type geheugenblok kan worden gekopieerd.

  3. src:
  4. Dit is een startpunt van het brongeheugenblok van waaruit het geheugenblok wordt gekopieerd. De aanwijzer wordt ongeldig verklaard, dus elk type geheugenblok kan worden gekopieerd.

  5. maat :
  6. Dit is de grootte van het geheugenblok in bytes.

De waarde van de twee aanwijzer bestemming en src moet zo zijn dat twee geheugenblokken elkaar niet overlappen. De grootte van de geheugenblokken van bron en bestemming moet minimaal zijn grootte (3e argument) bytes om overlappende situaties te voorkomen. Als de twee geheugenblokken elkaar overlappen, dan is het gedrag van de memcpy() functie is niet gedefinieerd. Als er een mogelijkheid van overlapping is, kunt u de onthouden() bibliotheekfunctie waar overlap goed gedefinieerd is. onthouden() functie is langzamer in vergelijking met memcpy() functie.

Vanwege de waarde van grootte, als de bron of bestemming wordt benaderd buiten hun bufferlengte, dan is het gedrag van de memcpy() functie is niet gedefinieerd.

De memcpy() functie controleert niet om '\0'-teken te beëindigen.

Retourwaarden:

Deze functie retourneert de waarde van het bestemmingsadres bestemming. als de waarde van bestemming is al beschikbaar, dus het hoeft niet in een variabele op te slaan.

Voorbeelden:

//Voorbeeld 1.c
#include
#include
int hoofd()

char src[] = "Hallo";
char dest[13];
memcpy(dest,src,6);
printf("dest after first memcpy() => %s\n",dest);
memcpy(dest+sizeof(src)-1," wereld!",8);
printf("dest na tweede memcpy() => %s\n",dest);
retourneer 0;

In voorbeeld1.c we hebben een array van twee tekens gedeclareerd src en bestemming. De grootte van de src is 6 en de bestemming is 13. Eerst hebben we 6 tekens 'H', 'e', ​​'l', 'l', 'o', '\0' gekopieerd van src naar bestemming ( Lijn 11 ). In de tweede memcpy() functie kopieerde 8 karakters", 'w', 'o', 'r', 'l', 'd', '!', '\0' naar het doel na 5 tekens ( regel 15 ). Picturaal kunnen we dit als volgt weergeven:

//Voorbeeld2.c
#include
#include
int hoofd()

typedef struct student

teken * naam;
int-ID;
int leeftijd;
soa;
std student1; // Declareer student1 van het type std
std student2; // Declareer student2 van het type std
// De waarde van sudent1 toewijzen
student1.naam = "Bamdev Ghosh";
student1.id = 1105;
student1.leeftijd = 30;
printf("Student1:\n\tNaam: %s\n\tid: %d\n\tage: %d\n",student1.naam,
student1.id,student1.leeftijd);
// Kopieer student1 naar student2
memcpy(&student2, &student1, sizeof(student1));
printf("\n\nNa memcpy:");
printf("\n\nStudent2:\n\tNaam: %s\n\tid: %d\n\tage: %d\n",
student2.naam,student2.id,student2.leeftijd);
retourneer 0;

In voorbeeld2.c we hebben twee structuren gedeclareerd: student1 en student2 (Lijn 15 en 16). Eerst initialiseren we student1 (regel 19, 20, 21). Daarna gebruiken we memcpy om gegevens van te kopiëren student1 naar student2.

Conclusie:

In dit artikel hebben we geleerd hoe u de memcpy functie. We hebben gezien dat deze functie voor elk type geheugenblok kan worden gebruikt, maar deze functie heeft enkele beperkingen. Je moet deze functie dus voorzichtig gebruiken.

Emuleer muisklikken door te zweven met Clickless Mouse in Windows 10
Het gebruik van een muis of toetsenbord in de verkeerde houding of overmatig gebruik kan leiden tot veel gezondheidsproblemen, waaronder spanning, car...
Voeg muisbewegingen toe aan Windows 10 met deze gratis tools
In de afgelopen jaren zijn computers en besturingssystemen sterk geëvolueerd. Er was een tijd dat gebruikers opdrachten moesten gebruiken om door best...
Beheer en beheer muisbewegingen tussen meerdere monitoren in Windows 10
Muisbeheer voor twee schermen laat je muisbewegingen tussen meerdere monitoren controleren en configureren door de bewegingen nabij de grens te vertra...

Laatste artikelen over besturingssystemen. Veel interessante handleidingen en handige tips. Voel je eigen in de wereld van moderne technologie