_aligned_offset_realloc
Změní velikost bloku paměti, který byl přidělen _aligned_malloc
_aligned_offset_malloc
nebo .
Syntaxe
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Parametry
memblock
Aktuální ukazatel bloku paměti.
size
Velikost přidělení paměti.
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_realloc
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í 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.
_aligned_offset_realloc
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_malloc
umožňuje _aligned_offset_realloc
, aby byla struktura zarovnaná na odsazení v rámci struktury.
_aligned_offset_realloc
je založena na malloc
. Další informace o použití _aligned_offset_malloc
naleznete 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 větší než _HEAP_MAXREQ
. Další informace o errno
, vizerrno
, _doserrno
, _sys_errlist
, a _sys_nerr
. _aligned_offset_realloc
Ověří také jeho parametry. Pokud alignment
není mocnina 2 nebo pokud offset
je nenulová a větší nebo rovna size
, 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
.
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_realloc |
<malloc.h> |
Příklad
Další informace najdete na webu _aligned_malloc
.