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()
- memcpy() controleert niet op overflow of .
- 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()