_aligned_offset_malloc
Přidělí paměť na zadanou hranici zarovnání.
Syntaxe
void * _aligned_offset_malloc(
size_t size,
size_t alignment,
size_t offset
);
Parametry
size
Velikost požadovaného 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
Ukazatel na blok paměti, který byl přidělen nebo NULL
pokud operace selhala.
Poznámky
_aligned_offset_malloc
je užitečné v situacích, kdy je potřeba zarovnání u vnořeného prvku; Pokud bylo například zarovnání potřeba pro vnořenou třídu.
_aligned_offset_malloc
je založena na malloc
; další informace naleznete v tématu malloc
.
_aligned_offset_malloc
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
.
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_malloc
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_malloc |
<malloc.h> |
Příklad
Další informace najdete na webu _aligned_malloc
.