Condividi tramite


_aligned_offset_malloc

Alloca memoria su un limite di allineamento specificato.

void * _aligned_offset_malloc(
   size_t size, 
   size_t alignment, 
   size_t offset
);

Parametri

  • [in] size
    La dimensione dell'allocazione di memoria richiesta.

  • [in] alignment
    Il valore di allineamento, che deve essere una potenza intera di 2.

  • [in] offset
    L'offset dell'allocazione di memoria per forzare l'allineamento.

Valore restituito

Un puntatore al blocco di memoria allocato o NULL se l'operazione ha esito negativo.

Note

_aligned_offset_malloc è utile nelle situazioni in cui l'allineamento è necessario in un elemento annidato; ad esempio, se l'allineamento è necessario in una classe annidata.

_aligned_offset_malloc si basa su malloc; per ulteriori informazioni, consultare malloc.

_aligned_offset_malloc è contrassegnata in __declspec(noalias) e __declspec(restrict), pertanto la funzione garantisce che le variabili globali non vengono modificate, e che il puntatore restituito è già utilizzato. Per ulteriori informazioni, vedere noalias e limiti.

Questa funzione imposta errno in ENOMEM se non è riuscita l'allocazione della memoria o se la dimensione richiesta è maggiore di _HEAP_MAXREQ. Per ulteriori informazioni su errno, vedere errno, _doserrno, _sys_errlist, and _sys_nerr. Inoltre, _aligned_offset_malloc convalida i suoi parametri. Se alignment non è una potenza di 2 o se offset è maggiore o uguale a size e diverso da zero, questa funzione chiama il gestore del parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, questa funzione restituisce NULL e imposta errno su EINVAL.

Requisiti

Routine

Intestazione obbligatoria

_aligned_offset_malloc

<malloc.h>

Esempio

Per ulteriori informazioni, vedere _aligned_malloc.

Vedere anche

Riferimenti

Allineamento dati