Sdílet prostřednictvím


_realloc_dbg

Přesunutí nebo změna velikosti bloku (pouze ladicí verze) reallocates zadaný blok paměti haldy.

void *_realloc_dbg(
   void *userData,
   size_t newSize,
   int blockType,
   const char *filename,
   int linenumber 
);

Parametry

  • userData
    Ukazatele na blok dříve přidělené paměti.

  • newSize
    Požadovaná velikost reallocated bloku (v bajtech).

  • blockType
    Požádal o typu reallocated bloku: _CLIENT_BLOCK nebo _NORMAL_BLOCK.

  • filename
    Ukazatel myši na název zdrojového souboru, která si vyžádala realloc operace nebo hodnotu NULL.

  • linenumber
    Číslo řádku na zdrojový soubor kde realloc operace byla požadovaná nebo NULL.

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

Vrácená hodnota

Po úspěšném ukončení této funkce vrací ukazatel na část bloku paměti reallocated s uživatelským, volá nové obslužné rutiny nebo vrátí hodnotu NULL.Úplný popis chování vratky naleznete v následující části poznámky.Další informace o použití nové funkce obslužné rutiny naleznete v tématu realloc funkce.

Poznámky

_realloc_dbgje ladicí verze realloc funkce.Při _DEBUG není definována, každé volání _realloc_dbg se snižuje o volání realloc.Obě realloc a _realloc_dbg přidělit bloku paměti haldy základní, ale _realloc_dbg poskytuje několik funkcí pro ladění: vyrovnávací paměti na obou stranách uživatele část bloku zkouška na těsnost, parametr typu bloku ke sledování přidělení určité typy a filename/linenumber informace k určení původu požadavky na přidělení.

_realloc_dbgreallocates paměti zadaný blok se trochu více místa, než požadovaná newSize.newSizemůže být větší nebo menší než velikost bloku původně přidělené paměti.Další místo je používán správce hald ladění propojení bloky paměti ladění a pro aplikaci s ladicími informacemi hlavičky a přepsat vyrovnávací paměti.Přerozdělení může způsobit přesunutí původního bloku paměti do jiného umístění v haldě, jakož i změny velikosti bloku paměti.Pokud přesunete blok paměti, obsah původního bloku budou přepsány.

_realloc_dbgNastaví errno k ENOMEM selhání přidělení paměti, nebo pokud překračuje množství potřebné paměti (včetně režie již bylo zmíněno dříve) _HEAP_MAXREQ.Další informace o tomto a dalších chybových kódech naleznete v tématu errno, _doserrno, _sys_errlist, and _sys_nerr.

Informace o způsobu přidělování, inicializace a správy paměťových bloků v ladicí verzi základní haldy viz Podrobnosti haldy ladění CRT.Informace o typech bloku přidělení a jejich použití naleznete v tématu typů bloků na ladění haldy.Informace o rozdílech mezi volání funkce standardní haldy a jeho ladicí verzi v sestavení ladící verze aplikace naleznete v tématu Ladění verzí funkcí přidělení haldy.

Požadavky

Rutina

Požadované záhlaví

_realloc_dbg

<crtdbg.h>

Další informace o kompatibilitě naleznete v úvodu tématu Kompatibilita.

Knihovny

Verze ladění pouze běhových knihoven C.

Příklad

Viz příklad v _msize_dbg téma.

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 vyvolání platformy.

Viz také

Referenční dokumentace

Rutiny ladění

_malloc_dbg