logo

memcpy() in C/C++

De functie memcpy() in C en C++ wordt gebruikt om een ​​geheugenblok van de ene locatie naar de andere te kopiëren. In tegenstelling tot andere kopieerfuncties is de memcpy functie kopieert het opgegeven aantal bytes van de ene geheugenlocatie naar de andere geheugenlocatie, ongeacht het type opgeslagen gegevens.

Het wordt aangegeven in header-bestand. In C++ wordt het ook binnenin gedefinieerd header-bestand.



Syntaxis van memcpy

De memcpy-functie wordt gedeclareerd als:

void * memcpy (void * to , const void * from , size_t numBytes );>

Parameters

    naar : Een verwijzing naar de geheugenlocatie waar de gekopieerde gegevens zullen worden opgeslagen. van: een verwijzing naar de geheugenlocatie vanwaar de gegevens moeten worden gekopieerd. numBytes : Het aantal bytes dat moet worden gekopieerd.

Winstwaarde

  • Deze functie retourneert een verwijzing naar de geheugenlocatie waar gegevens worden gekopieerd.

Voorbeeld van memcpy

Hieronder staat het C-programma om de werking van memcpy() te laten zien

C








// C program to demonstrate working of memcpy> #include> #include> int> main()> {> >char> str1[] =>'Geeks'>;> >char> str2[] =>'Quiz'>;> >puts>(>'str1 before memcpy '>);> >puts>(str1);> >// Copies contents of str2 to str1> >memcpy>(str1, str2,>sizeof>(str2));> >puts>(>' str1 after memcpy '>);> >puts>(str1);> >return> 0;> }>

zwevende css
>

>

Uitvoer

str1 before memcpy Geeks str1 after memcpy Quiz>

Belangrijke punten over memcpy()

  1. memcpy() controleert niet op overflow of .
  2. memcpy() leidt tot ongedefinieerd gedrag wanneer bron- en bestemmingsadressen elkaar overlappen.

Opmerking : onthoud() is een andere bibliotheekfunctie die goed met overlappingen omgaat.

Gerelateerd artikel

  • Schrijf je eigen memcpy() en memmove()