Udostępnij za pośrednictwem


_aligned_offset_malloc

Przydziela pamięć na granicy określone wyrównanie.

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

Parametry

  • [w]size
    Rozmiar alokacji żądanej pamięci.

  • [w]alignment
    Wartość wyrównania musi być całkowitą potęgą liczby 2.

  • [w]offset
    Przesunięcie w alokacji pamięci, aby wymusić wyrównanie.

Wartość zwracana

Wskaźnik do bloku pamięci, która została przydzielona lub NULL , jeśli operacja nie powiodła się.

Uwagi

_aligned_offset_mallocjest przydatne w sytuacjach, gdy potrzebna jest wyrównanie zagnieżdżonych elementu; na przykład, jeśli potrzebne było wyrównanie zagnieżdżonych klasy.

_aligned_offset_mallocjest oparta na malloc; Aby uzyskać więcej informacji, zobacz malloc.

_aligned_offset_mallocjest oznaczony jako __declspec(noalias) i __declspec(restrict), co oznacza, że funkcja zagwarantowane jest nie do modyfikacji zmiennych globalnych, i że zwrócony wskaźnik nie jest aliasu.Aby uzyskać więcej informacji, zobacz noalias i ograniczyć.

Ta funkcja ustawia errno do ENOMEM czy alokacja pamięci nie powiodła się, czy żądany rozmiar był większy niż _HEAP_MAXREQ.Aby uzyskać więcej informacji o errno, zobacz errno, _doserrno, _sys_errlist i _sys_nerr.Ponadto _aligned_offset_malloc sprawdza poprawność jego parametry.Jeśli alignment nie jest potęgą liczby 2 lub jeśli offset jest większa niż lub równa size i różną od zera, funkcja ta wywołuje obsługi nieprawidłowy parametr, jak opisano w Sprawdzanie poprawności parametru.Jeśli wykonanie mogą w dalszym ciągu, funkcja ta zwraca NULL i ustawia errno do EINVAL.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_aligned_offset_malloc

<malloc.h>

Przykład

Aby uzyskać więcej informacji, zobacz _aligned_malloc.

Zobacz też

Informacje

Wyrównanie danych