Sdílet prostřednictvím


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í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í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í

_memccpy

memchr, wmemchr

memcmp, wmemcmp

memmove, wmemmove

memset, wmemset

strcpy_s, wcscpy_s, _mbscpy_s

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l