Sdílet prostřednictvím


_aligned_offset_malloc

Přidělí paměť na hranici zadané zarovnání.

void * _aligned_offset_malloc(
   size_t size, 
   size_t alignment, 
   size_t offset
);

Parametry

  • [v]size
    Velikost přidělení požadované paměti.

  • [v]alignment
    Hodnota zarovnání musí být celočíselná mocnina 2.

  • [v]offset
    Posun do přidělení paměti vynutit zarovnání.

Vrácená hodnota

Ukazatel na blok paměti, která byla přidělena nebo NULL Pokud operace se nezdařila.

Poznámky

_aligned_offset_mallocje užitečné v situacích, kde je potřeba zarovnání vnořených elementu; například zarovnání bylo nutné vnořené třídy.

_aligned_offset_mallocje založena na malloc; Další informace naleznete v tématu malloc.

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

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_malloc 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_malloc

<malloc.h>

Příklad

Další informace naleznete v _aligned_malloc.

Viz také

Referenční dokumentace

Zarovnání dat