Funktionen memcpy() i C og C++ bruges til at kopiere en hukommelsesblok fra en placering til en anden. I modsætning til andre kopifunktioner er memcpy funktionen kopierer det angivne antal bytes fra den ene hukommelsesplacering til den anden hukommelsesplacering uanset typen af lagrede data.
Det er deklareret i header-fil. I C++ er det også defineret inde header-fil.
Syntaks for memcpy
Memcpy-funktionen er erklæret som:
void * memcpy (void * to , const void * from , size_t numBytes );>
Parametre
- til : En pegepind til den hukommelsesplacering, hvor de kopierede data vil blive gemt. fra : En pegepind til den hukommelsesplacering, hvorfra dataene skal kopieres. numBytes : Antallet af bytes, der skal kopieres.
Returværdi
- Denne funktion returnerer en markør til den hukommelsesplacering, hvor data kopieres.
Eksempel på memcpy
Nedenfor er C-programmet til at vise, hvordan memcpy() virker
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;> }> |
java kommentarer
>
>Produktion
str1 before memcpy Geeks str1 after memcpy Quiz>
Vigtige punkter om memcpy()
- memcpy() tjekker ikke for overløb eller .
- memcpy() fører til udefineret adfærd, når kilde- og destinationsadresser overlapper hinanden.
Bemærk : memmove() er en anden biblioteksfunktion, der håndterer overlapning godt.
Relateret artikel
- Skriv din egen memcpy() og memmove()