Sdílet prostřednictvím


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

Viz také

Zarovnání dat