_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 NULLbei 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_errlistund _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 sizeist, 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.

Siehe auch

Datenausrichtung