Sdílet prostřednictvím


_malloc_dbg

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.

Viz také

Rutiny ladění
malloc
_calloc_dbg