Sdílet prostřednictvím


_aligned_offset_recalloc

Změní velikost bloku paměti, který byl přidělen _aligned_malloc nebo _aligned_offset_malloc inicializuje paměť na 0.

Syntaxe

void * _aligned_offset_recalloc(
   void *memblock,
   size_t num,
   size_t size,
   size_t alignment,
   size_t offset
);

Parametry

memblock
Aktuální ukazatel bloku paměti.

number
Počet prvků

size
Délka v bajtech každého prvku

alignment
Hodnota zarovnání, která musí být celočíselná mocnina 2.

offset
Posun do přidělení paměti k vynucení zarovnání.

Vrácená hodnota

_aligned_offset_recalloc vrátí ukazatel void na relokovaný (a pravděpodobně přesunutý) paměťový blok. 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.

_aligned_offset_recalloc je označen a __declspec(noalias) __declspec(restrict), což znamená, že funkce není zaručeno, že nebude upravovat globální proměnné a že vrácený ukazatel není aliasován. Další informace najdete v tématech noalias a restrict.

Poznámky

Podobně jako _aligned_offset_mallocumožňuje _aligned_offset_recalloc , aby byla struktura zarovnaná na odsazení v rámci struktury.

_aligned_offset_recalloc je založena na malloc. Další informace o použití _aligned_offset_mallocnaleznete v tématu malloc. Pokud memblock ano NULL, funkce volá _aligned_offset_malloc interně.

Tato funkce nastaví errno ENOMEM, jestli přidělení paměti selhalo nebo pokud byla požadovaná velikost ( * numbersize) větší než _HEAP_MAXREQ. Další informace o errno, vizerrno , _doserrno, _sys_errlist, a _sys_nerr. _aligned_offset_recalloc Ověří také jeho parametry. Pokud alignment není mocnina 2 nebo pokud offset není nulová a větší nebo rovna sizepožadovanému, vyvolá tato funkce 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.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor
_aligned_offset_recalloc <malloc.h>

Viz také

Zarovnání dat
_recalloc
_aligned_recalloc