_aligned_recalloc_dbg
Změní velikost bloku paměti, který byl přidělen _aligned_malloc
nebo _aligned_offset_malloc
inicializuje paměť na 0 (pouze ladicí verze).
Syntaxe
void * _aligned_recalloc_dbg(
void * memblock,
size_t num,
size_t size,
size_t alignment,
const char *filename,
int linenumber
);
Parametry
memblock
Aktuální ukazatel bloku paměti.
number
Počet prvků.
size
Velikost v bajtech každého prvku.
alignment
Hodnota zarovnání, která musí být celočíselná mocnina 2.
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
.
Vrácená hodnota
_aligned_recalloc_dbg
void
vrátí ukazatel na relokovaný (a pravděpodobně přesunutý) blok paměti. Vrácená hodnota je NULL
, pokud je velikost nula a argument vyrovnávací paměti není NULL
nebo pokud není dostatek dostupné paměti k rozšíření bloku na danou velikost. V prvním případě se původní blok uvolní. V druhém případě se původní blok nezmění. Návratová hodnota odkazuje na prostor úložiště, který je vhodně zarovnaný pro úložiště libovolného typu objektu. Pokud chcete získat ukazatel na jiný typ než void
, použijte přetypování typu na návratovou hodnotu.
Jedná se o chybu při opětovném přidělení paměti a změně zarovnání bloku.
Poznámky
_aligned_recalloc_dbg
je ladicí verze _aligned_recalloc
funkce. Pokud _DEBUG
není definováno, každé volání _aligned_recalloc_dbg
se sníží na volání _aligned_recalloc
. Blok _aligned_recalloc
paměti v základní haldě a _aligned_recalloc_dbg
relokujte ho, ale _aligned_recalloc_dbg
zahrnuje několik funkcí ladění: vyrovnávací paměti na obou stranách bloku, které se mají otestovat na nevracení, a filename
/linenumber
informace pro určení původu žádostí o přidělení. Sledování konkrétních typů přidělení pomocí parametru typu bloku není podporovanou funkcí ladění pro sladěné přidělení. Zarovnané přidělení se zobrazí jako _NORMAL_BLOCK
typ bloku.
_aligned_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. Relokace může přesunout původní blok paměti do jiného umístění v haldě a změnit velikost bloku paměti. Část bloku uživatele je vyplněna hodnotou 0xCD a přepsání vyrovnávací paměti jsou vyplněny 0xFD.
_aligned_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
_doserrno
errno
_aligned_recalloc_dbg
Ověří také jeho parametry. Pokud alignment
není mocnina 2, tato funkce vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru. Pokud je spuštění povoleno pokračovat, tato funkce vrátí NULL
a nastaví errno
hodnotu EINVAL
.
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 typech bloků přidělení a jejich použití najdete v tématu Typy bloků v haldě ladění. Informace o rozdílech mezi standardními funkcemi haldy a jejich ladicí verze naleznete v tématu Ladění verzí funkcí přidělení haldy.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
_aligned_recalloc_dbg |
<crtdbg.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Knihovny
Ladění pouze verzí knihoven runtime jazyka C.