memcpy, wmemcpy
Kopie bajtů mezi vyrovnávací paměti.K dispozici jsou bezpečnější verze těchto funkcí, viz memcpy_s, wmemcpy_s.
void *memcpy( void *dest, const void *src, size_t count ); wchar_t *wmemcpy( wchar_t *dest, const wchar_t *src, size_t count );
Parametry
dest
Nové vyrovnávací paměti.src
Zkopírovat z vyrovnávací paměti.count
Počet znaků, které se má kopírovat.
Vrácená hodnota
Hodnota dest.
Poznámky
memcpykopie count bajtů z src k dest; wmemcpy kopie count široké znaky (dva v bajtech).Pokud zdrojovým a cílovým překrývají, chování memcpy není definováno.Použití memmove ke zpracování překrývající se oblasti.
Poznámka k zabezpečení |
---|
Ujistěte se, že cílová vyrovnávací paměť je stejný velký nebo větší než vyrovnávací paměť zdroje.Další informace naleznete v tématu Předcházení přetečení vyrovnávací paměti. |
Poznámka k zabezpečení |
---|
Vzhledem k tomu, že tolik přetečení zásobníku a tedy potenciální zneužití zabezpečení, byla sledovat, k nesprávné použití memcpy, tato funkce je uvedena mezi "vyloučených" funkce podle životního cyklu zabezpečení vývoj (SDL).Může zjistíte, že některé třídy knihovny VC ++ nadále používat memcpy.Kromě toho může sledovat optimalizace kompilátoru VC ++ někdy vydá volání memcpy.Produkt Visual C++ je vyvinuta v souladu s procesu SDL a proto byla použití této funkce vyloučených těsně vyhodnocena.V případě knihovny použít jeho, volání byl pečlivě kontrolovány zajistit, že nebude prostřednictvím těchto volání povolena přetečení zásobníku.V případě kompilátor, někdy určité vzorce kódu jsou rozpoznána jako identické vzor memcpya proto nahrazen během volání funkce.V takových případech použití memcpy je žádné další nebezpečné než původní pokynů, které by byly; jednoduše k volání optimalizaci výkonu byly optimalizovány memcpy funkce.Stejně jako použití funkce "bezpečných" CRT není zárukou bezpečnosti (jejich pouze usnadňují těžší může být potenciálně nebezpečný) použití "vyloučených" funkcí není zárukou nebezpečí (vyžadují jen větší kontrolu k zajištění bezpečnosti) Protože memcpy využití podle VC ++ kompilátoru a knihoven má pečlivě kontrolovány, tato volání jsou povoleny v rámci kód, který je kompatibilní s SDL jinak.memcpyvolání zavedena ve zdrojovém kódu aplikace jsou kompatibilní s SDL, pouze pokud má byly zkontrolovány používající odborníky zabezpečení. |
memcpy a wmemcpy funkce bude nepoužívané pouze v případě konstanta _CRT_SECURE_DEPRECATE_MEMORY je definován před příkaz zahrnutí v pořadí pro funkcí, které mají být nepoužívané, například v níže uvedeném příkladu:
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <memory.h>
or
#define _CRT_SECURE_DEPRECATE_MEMORY
#include <wchar.h>
Požadavky
Rutina |
Požadovaný hlavičkový soubor |
---|---|
memcpy |
< memory.h > nebo < string.h > |
wmemcpy |
< wchar.h > |
Další informace o kompatibilitě naleznete v úvodu tématu Kompatibilita.
Příklad
Podívejte se na téma memmove ukázku použití memcpy.
Viz také
Referenční dokumentace
Zacházení s vyrovnávací pamětí
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l