Udostępnij przez


_aligned_offset_malloc

Przydziela pamięć na określonej granicy wyrównania.

Składnia

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

Parametry

size
Rozmiar alokacji żądanej pamięci.

alignment
Wartość wyrównania, która musi być całkowitą potęgą liczby 2.

offset
Przesunięcie alokacji pamięci, aby wymusić wyrównanie.

Wartość zwracana

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

Uwagi

_aligned_offset_malloc jest przydatna w sytuacjach, w których dopasowanie jest wymagane dla zagnieżdżonego elementu; na przykład jeśli w klasie zagnieżdżonej potrzebne było wyrównanie.

_aligned_offset_malloc jest oparty na malloc; aby uzyskać więcej informacji, zobacz malloc.

_aligned_offset_malloc jest oznaczony __declspec(noalias) i __declspec(restrict), co oznacza, że funkcja nie ma gwarancji, aby nie modyfikować zmiennych globalnych i że zwrócony wskaźnik nie jest aliasowany. Aby uzyskać więcej informacji, zobacz tematy noalias oraz restrict.

Ta funkcja ustawia errno na ENOMEM jeśli alokacja pamięci nie powiodła się lub jeśli żądany rozmiar był większy niż _HEAP_MAXREQ. Aby uzyskać więcej informacji na temat errnoprogramu , zobaczerrno , _doserrno, _sys_errlisti _sys_nerr. _aligned_offset_malloc Ponadto weryfikuje jego parametry. Jeśli alignment nie jest potęgą 2 lub jeśli offset nie ma wartości zero i jest większa niż lub równa size, ta funkcja wywołuje nieprawidłową procedurę obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, ta funkcja zwraca NULL i ustawia wartość errno .EINVAL

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Wymagania

Procedura Wymagany nagłówek
_aligned_offset_malloc <malloc.h>

Przykład

W celu uzyskania więcej informacji, zobacz następujący temat: _aligned_malloc.

Zobacz też

Wyrównanie danych