_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
_doserrno
errno
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_dbg
naleznete v tématu crt_dbg1
.