Sdílet prostřednictvím


_recalloc_dbg

Relokuje pole a inicializuje jeho prvky na 0 (pouze ladicí verze).

Syntaxe

void *_recalloc_dbg(
   void *userData,
   size_t num,
   size_t size,
   int blockType,
   const char *filename,
   int linenumber
);

Parametry

userData
Ukazatel na dříve přidělený blok paměti.

number
Požadovaný počet paměťových bloků

size
Požadovaná velikost každého bloku paměti (bajtů).

blockType
Požadovaný typ bloku paměti: _CLIENT_BLOCK nebo _NORMAL_BLOCK.

Informace o typech bloků přidělení a jejich použití najdete v tématu Typy bloků v haldě ladění.

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 _recalloc_dbg byla volána explicitně nebo byla definována konstanta preprocesoru _CRTDBG_MAP_ALLOC .

Vrácená hodnota

Po úspěšném dokončení tato funkce buď vrátí ukazatel na uživatelskou část relokované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 _recalloc funkci.

Poznámky

_recalloc_dbg je ladicí verze _recalloc funkce. Pokud _DEBUG není definováno, každé volání _recalloc_dbg se sníží na volání _recalloc. Blok _recalloc paměti v základní haldě a _recalloc_dbg relokujte ho, ale _recalloc_dbg zahrnuje několik funkcí ladění: vyrovnávací paměti na obou stranách bloku, které se mají otestovat na nevracení, parametr typu bloku pro sledování konkrétních typů přidělení a filename/linenumber informace k určení původu žádostí o přidělení.

_recalloc_dbg přeloží zadaný blok paměti o trochu více místa, než je požadovaná velikost (number * size), která může být větší nebo menší než velikost původně přiděleného bloku paměti. 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. Výsledkem skutečného umístění může být přesunutí původního bloku paměti do jiného umístění v haldě a změna velikosti bloku paměti. Část bloku uživatele je vyplněna hodnotou 0xCD a každá vyrovnávací paměť přepsání je vyplněna 0xFD.

_recalloc_dbg nastaví errno , ENOMEM pokud přidělení paměti selže; EINVAL je vráceno v případě, že množství potřebné paměti (včetně výše uvedené režie) překročí _HEAP_MAXREQ. Informace o těchto a dalších kódech chyb naleznete v tématu , , , a_sys_nerr . _sys_errlist_doserrnoerrno

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 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
_recalloc_dbg <crtdbg.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Knihovny

Ladění pouze verzí knihoven runtime jazyka C.

Viz také

Rutiny ladění