_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 errno
programu , zobaczerrno
, _doserrno
, _sys_errlist
i _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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla