Sdílet prostřednictvím


_malloc_dbg

Přidělí blok paměti haldy další místo pro hlavičku ladění a přepsat vyrovnávací paměti (pouze verze ladění).

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 bloku paměti: _CLIENT_BLOCK nebo _NORMAL_BLOCK.

  • filename
    Ukazatel na název zdrojového souboru, který požádal přidělení operace nebo hodnota NULL.

  • linenumber
    Číslo řádku na zdrojový soubor, kde byla požadována operace přidělení nebo hodnota NULL.

filename a linenumber parametry jsou k dispozici pouze při _malloc_dbg byla volána explicitně nebo _CRTDBG_MAP_ALLOC byla definována preprocessor konstanta.

Vrácená hodnota

Na úspěšné dokončení této funkce vrací ukazatel na uživatele část bloku přidělené paměti, volá funkci novou obslužnou rutinu nebo vrátí hodnotu NULL.Úplný popis návratový chování naleznete v následující části poznámky.Další informace o způsobu nové funkce obslužné rutiny naleznete přidělit funkce.

Poznámky

_malloc_dbgje ladicí verze přidělit funkce.Při _DEBUG není definována, každé volání _malloc_dbg snižuje na volání malloc.Oba malloc a _malloc_dbg přidělit blok paměti základní haldy, ale _malloc_dbg nabízí několik funkce ladění: ve vyrovnávací paměti na obou stranách část bloku k testování problémů s nevracením paměti, parametr typu block sledování konkrétní přidělení typů s uživatelským a filename/linenumber informace k určení původu požadavky na přidělení.

_malloc_dbgpřiděluje blok paměti se mírně více místa, než požadovaný size.Další místo se používá haldy správcem ladění propojit bloky paměti ladění a k poskytování aplikací s informacemi hlavičky a ladění a přepsat vyrovnávací paměti.Při přidělení bloku uživatele část bloku je zaplněna hodnota 0xCD a každá z vyrovnávací paměti přepsat jsou vyplněny 0xFD.

_malloc_dbgNastaví errno k ENOMEM selhání přidělení paměti, nebo v případě potřeby paměti (včetně nároky na výkon výše uvedené) překročí _HEAP_MAXREQ.Informace o této a dalších kódy chyb naleznete v tématu errno, _doserrno, _sys_errlist, and _sys_nerr.

Informace o způsobu jsou bloky paměti přidělené, inicializován a správy v ladicí verze základní haldy, naleznete v části Podrobnosti haldy ladění CRT.Informace o typech bloku přidělení a způsobu jejich použití naleznete v tématu typy bloky haldy ladění.Informace o rozdílech mezi volání funkce standardní haldy a jeho ladicí verze v sestavení ladicí verze aplikace 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ě, podívejte se na téma kompatibility v zavedení.

Knihovny

Ladicí verze knihoven C run-time pouze.

Příklad

Příklad použití _malloc_dbg, naleznete v části crt_dbg1.

Ekvivalent v rozhraní .NET Framework

Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu příklady vyvolat platformy.

Viz také

Referenční dokumentace

Rutiny ladění

malloc

_calloc_dbg

_calloc_dbg