Sdílet prostřednictvím


Funkce háku přidělení

Funkce háčkem přidělení, nainstalované pomocí _CrtSetAllocHook, se nazývá vždy přidělena, přerozděleny nebo uvolnění paměti.Tento typ zavěšení lze použít pro mnoho různých účelů.Použijte ji otestovat, jak aplikace zpracovává situacích není dostatek paměti, nebo přezkoumá rozdělení vzorků nebo informace o přidělení pro pozdější analýzu.

[!POZNÁMKA]

Uvědomte si, omezení použití funkce C Runtime library ve funkci háčkem přidělení, popsané v přidělení zavěsí a přidělení paměti C Runtime.

Přidělení funkce by měly mít prototypu následující:

int YourAllocHook(int nAllocType, void *pvData,
        size_t nSize, int nBlockUse, long lRequest,
        const unsigned char * szFileName, int nLine )

Ukazatel, který předáte do _CrtSetAllocHook je typu _CRT_ALLOC_HOOK, jak jsou definovány v CRTDBG.H:

typedef int (__cdecl * _CRT_ALLOC_HOOK)
    (int, void *, size_t, int, long, const unsigned char *, int);

Pokud knihovna runtime volá váš háčkem nAllocType argument určuje, jaké přidělení operace je provedeno (_HOOK_ALLOC, _HOOK_REALLOC, nebo _HOOK_FREE).Z bezplatného nebo přerozdělení pvData obsahuje ukazatel na téma uživatele bloku chcete uvolnit.Však z přidělení, tento ukazatel má hodnotu null, protože přiřazení ještě nedošlo.Zbývající argumenty obsahovat velikosti přidělení dotyčné jeho typ bloku požadavku sekvenční číslo přidružené a ukazatel na soubor název a řádek číslo ve kterém byla provedena přidělení, pokud je k dispozici.Po zavěšení funkce provádí analýzu bez ohledu a jiné úkoly jeho autor chce, musí vrátit buď TRUE, označující, že přidělení operaci pokračovat, nebo FALSE, označující, že nezdaří.Jednoduché zavěšení tohoto typu může kontrolovat množství paměti přidělené dosavadní a vrátit FALSE Pokud tato částka malé překročili.Aplikace potom dostal druh chyby přidělení, které by normálně dochází pouze v případě, že byl velmi málo dostupné paměti.Složitější háky pravděpodobně přehled o přidělení vzorky, analyzovat využití paměti nebo zprávy při výskytu určitých situacích.

Viz také

Koncepty

Háky přidělení a přidělení běhové paměti jazyka C

Další zdroje

Zápis funkce háku ladění

crt_dbg2 Sample