_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.