Freigeben über


_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.

Siehe auch

Referenz

Datenausrichtung