Sdílet prostřednictvím


_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 Kód chyby, _doserrno, _sys_errlist a _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í parametrů.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.

Viz také

Referenční dokumentace

Zarovnání dat