_aligned_offset_malloc
Weist Speicher mit einer definierten Zuweisungsgrenze zu.
Syntax
void * _aligned_offset_malloc(
size_t size,
size_t alignment,
size_t offset
);
Parameter
size
Die Größe der angeforderten Speicherbelegung.
alignment
Der Ausrichtungswert, der eine ganzzahlige Potenz von 2 sein muss.
offset
Der Offset in der Speicherbelegung zum Erzwingen der Ausrichtung.
Rückgabewert
Ein Zeiger zum Speicherblock, der belegt wurde, oder NULL
bei fehlgeschlagenem Vorgang.
Hinweise
_aligned_offset_malloc
ist nützlich in Situationen, in denen eine Ausrichtung für ein geschachteltes Element erforderlich ist, beispielsweise wenn eine Ausrichtung für eine geschachtelte Klasse erforderlich war.
_aligned_offset_malloc
basiert auf malloc
; weitere Informationen finden Sie unter malloc
.
_aligned_offset_malloc
ist markiert __declspec(noalias)
und __declspec(restrict)
bedeutet, dass die Funktion garantiert nicht globale Variablen ändert und dass der zurückgegebene Zeiger nicht aliast ist. Weitere Informationen finden Sie unter noalias
und restrict
.
Diese Funktion legt errno
auf ENOMEM
fest, wenn die Speicherbelegung fehlgeschlagen ist oder die angeforderte Größe größer als _HEAP_MAXREQ
war. Weitere Informationen zu errno
, sieheerrno
, , _doserrno
, _sys_errlist
und _sys_nerr
. Darüber hinaus überprüft _aligned_offset_malloc
auch die eigenen Parameter. Wenn alignment
es sich nicht um eine Potenz von 2 handelt oder offset
ungleich Null und größer als oder gleich size
ist, ruft diese Funktion den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion NULL
zurück und stellt errno
auf EINVAL
ein.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
_aligned_offset_malloc |
<malloc.h> |
Beispiel
Weitere Informationen finden Sie unter _aligned_malloc
.