_aligned_offset_realloc
Změní velikost bloku paměti, která byla přidělena s _aligned_malloc nebo _aligned_offset_malloc.
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í musí být celočíselná mocnina 2.offset
Posun do přidělení paměti vynutit zarovnání.
Vrácená hodnota
_aligned_offset_reallocNeplatný ukazatel vrátí do bloku paměti reallocated (a případně přesunutý).Vrácená hodnota je NULL -li velikost je nula a argument vyrovnávací paměti není NULL, nebo pokud není k dispozici dostatek paměti rozbalit do dané velikosti bloku.V prvním případě původní blok uvolněno.V druhém případě se nemění původní blok.Vrácená hodnota odkazuje na úložný prostor, který je zaručeně vhodně zarovnání pro skladování jakýkoli typ objektu.Získání ukazatele typu void, použití než typ odevzdaných na vrácenou hodnotu.
_aligned_offset_reallocje označena __declspec(noalias) a __declspec(restrict), což znamená, že funkce je zaručena upravit globální proměnné, vrácený ukazatel není s aliasem.Další informace naleznete v noalias a omezit.
Poznámky
Jako _aligned_offset_malloc, _aligned_offset_realloc umožňuje struktury k zarovnání posunem v rámci struktury.
_aligned_offset_reallocje založena na malloc.Další informace o použití _aligned_offset_malloc, viz malloc.Pokud memblock je NULL, volání funkce _aligned_offset_malloc interně.
Tato funkce nastaví errno na ENOMEM přidělení paměti se nezdařilo nebo bylo větší než požadovaná velikost _HEAP_MAXREQ.Pro více informací o errno si prohlédněte errno, _doserrno, _sys_errlist, and _sys_nerr.Také _aligned_offset_realloc ověřuje jeho parametry.Pokud alignment není napájení 2 nebo pokud offset je větší než nebo rovno size a nenulová, tato funkce vyvolá obsluhu neplatný parametr popsaným v Ověření parametru.Pokud je povoleno spuštění pokračovat, vrátí funkce hodnotu NULL a errno na EINVAL.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_aligned_offset_realloc |
<malloc.h> |
Příklad
Další informace naleznete v _aligned_malloc.