_aligned_offset_malloc
Belegt in einer angegebenen Grenze integralen Speicher.
void * _aligned_offset_malloc(
size_t size,
size_t alignment,
size_t offset
);
Parameter
[in] size
Die Größe der angeforderten Speicherbelegung.[in] alignment
Der Ausrichtungswert, der eine ganzzahlige Potenz von 2 sein muss.[in] 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 als __declspec(noalias) gekennzeichnet und __declspec(restrict) heißt, dass die Funktion, die gewährleistet sind globale Variablen nicht zu ändern und der zurückgegebene Zeiger nicht von Alias-. Weitere Informationen finden Sie unter noalias und Einschränken ein.
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 finden Sie unter errno, _doserrno, _sys_errlist und _sys_nerr. Darüber hinaus überprüft _aligned_offset_malloc auch die eigenen Parameter. Wenn alignment keine Potenz von 2 ist oder offset größer als oder gleich size und ungleich 0 ist, ruft diese Funktion den ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt diese Funktion NULL zurück und stellt errno auf EINVAL ein.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_aligned_offset_malloc |
<malloc.h> |
Beispiel
Weitere Informationen finden Sie unter _aligned_malloc.