Funkce memcpy() v C a C++ se používá ke zkopírování bloku paměti z jednoho místa na druhé. Na rozdíl od jiných funkcí kopírování, memcpy funkce zkopíruje zadaný počet bajtů z jednoho paměťového místa do druhého paměťového místa bez ohledu na typ uložených dat.
Je vyhlášeno v hlavičkový soubor. V C++ je také definován uvnitř hlavičkový soubor.
Syntaxe memcpy
Funkce memcpy je deklarována jako:
void * memcpy (void * to , const void * from , size_t numBytes );>
Parametry
- to : Ukazatel na paměťové místo, kam budou uložena zkopírovaná data. from : Ukazatel na paměťové místo, odkud mají být data zkopírována. numBytes : Počet bajtů, které mají být zkopírovány.
Návratová hodnota
- Tato funkce vrací ukazatel na paměťové místo, kam jsou data zkopírována.
Příklad memcpy
Níže je uveden program C, který ukazuje fungování memcpy()
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;> }> |
jádro java
>
>Výstup
str1 before memcpy Geeks str1 after memcpy Quiz>
Důležité body o memcpy()
- memcpy() nekontroluje přetečení nebo .
- memcpy() vede k nedefinovanému chování, když se zdrojová a cílová adresa překrývají.
Poznámka : memmove() je další knihovní funkce, která dobře zvládá překrývání.
Související článek
- Napište si vlastní memcpy() a memmove()