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