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.
Knihovna C runtime (CRT) obsahuje speciální ladicí verze funkcí přidělení haldy. Tyto funkce mají stejné názvy jako verze vydané verze s připojenými verzemi _dbg . Tento článek popisuje rozdíly mezi verzí funkce CRT a _dbg verzí, a to pomocí malloc a _malloc_dbg jako příklady.
Chování při sestaveních ladění
Pokud _DEBUG je definován, CRT mapuje všechna malloc volání na _malloc_dbg. Proto nemusíte kód přepisovat pomocí funkce, _malloc_dbg abyste malloc při ladění získali výhody.
Můžete ale chtít volat _malloc_dbg explicitně. Volání _malloc_dbg explicitně má některé další výhody:
Přidělování typů sledování
_CLIENT_BLOCKUložení zdrojového souboru a čísla řádku, kde došlo k žádosti o přidělení.
Pokud nechcete převést volání na _malloc_dbg, můžete získat informace o zdrojovém souboru definováním _CRTDBG_MAP_ALLOC, což způsobí, že preprocesor přímo mapuje všechna volánímalloc, aby _malloc_dbg se nemusela spoléhat na obálku kolem malloc.malloc
Pokud chcete sledovat samostatné typy přidělení v blocích klienta, musíte volat _malloc_dbg přímo a nastavit blockType parametr na _CLIENT_BLOCK.
Chování v sestaveních, která nejsou laděná
Pokud _DEBUG není definována, volání, která malloc nejsou narušena, volání _malloc_dbg se přeloží mallocna , definice _CRTDBG_MAP_ALLOC je ignorována a informace o zdrojovém souboru týkající se žádosti o přidělení nejsou k dispozici. Vzhledem k tomu malloc , že parametr typu bloku nemá, požadavky na _CLIENT_BLOCK typy se považují za standardní přidělení.