Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přidělí blok paměti v haldě s nadbytečným místem pro hlavičku ladění a přepíše vyrovnávací paměti (pouze ladicí verze).
Syntaxe
void *_malloc_dbg(
size_t size,
int blockType,
const char *filename,
int linenumber
);
Parametry
size
Požadovaná velikost bloku paměti (v bajtech).
blockType
Požadovaný typ paměťového bloku: _CLIENT_BLOCK nebo _NORMAL_BLOCK.
filename
Ukazatel na název zdrojového souboru, který požadoval operaci přidělení nebo NULL.
linenumber
Číslo řádku ve zdrojovém souboru, kde byla požadována operace přidělení nebo NULL.
Parametry filename jsou linenumber k dispozici pouze v případech, kdy _malloc_dbg byla volána explicitně nebo byla definována konstanta preprocesoru _CRTDBG_MAP_ALLOC .
Vrácená hodnota
Po úspěšném dokončení vrátí tato funkce ukazatel na uživatelskou část přiděleného bloku paměti, zavolá novou funkci obslužné rutiny nebo vrátí NULL. Úplný popis chování vrácení najdete v následující části Poznámky. Další informace o tom, jak se používá nová funkce obslužné rutiny, najdete v této malloc funkci.
Poznámky
_malloc_dbg je ladicí verze malloc funkce. Pokud _DEBUG není definováno, každé volání _malloc_dbg se sníží na volání malloc. A malloc přidělte blok paměti v základní haldě, ale _malloc_dbg nabízí několik funkcí ladění: vyrovnávací paměti na obou stranách bloku pro testování úniků, parametr typu bloku pro sledování konkrétních typů přidělení a filename/linenumber informace pro určení původu žádostí o přidělení._malloc_dbg
_malloc_dbg přidělí blok paměti o něco více místa, než je požadováno size. Další místo používá správce haldy ladění k propojení bloků paměti ladění a k poskytnutí aplikace informace hlavičky ladění a přepsání vyrovnávací paměti. Při přidělení bloku se část bloku uživatele vyplní hodnotou 0xCD a každá vyrovnávací paměť přepsání se vyplní 0xFD.
_malloc_dbg nastaví errno , ENOMEM pokud přidělení paměti selže nebo pokud potřebné množství paměti (včetně výše uvedených režijních nákladů) překročí _HEAP_MAXREQ. Informace o těchto a dalších kódech chyb naleznete v tématu , , , a_sys_nerr . _sys_errlist_doserrnoerrno
Informace o přidělování, inicializaci a správě bloků paměti ve verzi ladění základní haldy naleznete v podrobnostech haldy ladění CRT. Informace o typech bloků přidělení a jejich použití najdete v tématu Typy bloků v haldě ladění. Informace o rozdílech mezi standardními funkcemi haldy a ladicí verze naleznete v tématu Ladění verzí funkcí přidělení haldy.
Požadavky
| Rutina | Požadovaný hlavičkový soubor |
|---|---|
_malloc_dbg |
<crtdbg.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Knihovny
Ladění pouze verzí knihoven runtime jazyka C.
Příklad
Ukázku použití _malloc_dbgnaleznete v tématu crt_dbg1.