memcpy() v C/C++
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;> }> |
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()