_aligned_offset_malloc
Alloca la memoria in un limite di allineamento specificato.
Sintassi
void * _aligned_offset_malloc(
size_t size,
size_t alignment,
size_t offset
);
Parametri
size
Dimensione dell'allocazione di memoria richiesta.
alignment
Valore di allineamento, che deve essere una potenza intera di 2.
offset
Offset nell'allocazione di memoria per imporre l'allineamento.
Valore restituito
Puntatore al blocco di memoria allocato o NULL
se l'operazione non è riuscita.
Osservazioni:
_aligned_offset_malloc
è utile nelle situazioni in cui è necessario l'allineamento in un elemento annidato, ad esempio, nel caso in cui è stato necessario l'allineamento in una classe annidata.
_aligned_offset_malloc
è basato su malloc
. Per altre informazioni, vedere malloc
.
_aligned_offset_malloc
è contrassegnato __declspec(noalias)
e __declspec(restrict)
, il che significa che la funzione non deve modificare le variabili globali e che il puntatore restituito non è aliasato. Per altre informazioni, vedere noalias
e restrict
.
La funzione imposta errno
su ENOMEM
se l'allocazione di memoria non riesce o se la dimensione richiesta è maggiore di _HEAP_MAXREQ
. Per altre informazioni su errno
, vedere errno
, _doserrno
, _sys_errlist
e _sys_nerr
. _aligned_offset_malloc
, inoltre, convalida i propri parametri. Se alignment
non è una potenza di 2 o se offset
è diverso da zero e maggiore o uguale a size
, questa funzione richiama il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione restituisce NULL
e imposta errno
su EINVAL
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
_aligned_offset_malloc |
<malloc.h> |
Esempio
Per ulteriori informazioni, vedere _aligned_malloc
.