Sdílet prostřednictvím


_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_dbgvoid 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í NULLnebo 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_doserrnoerrno

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

Viz také

Rutiny ladění