_aligned_offset_malloc
Alloue de la mémoire sur une limite d'alignement spécifiée.
Syntaxe
void * _aligned_offset_malloc(
size_t size,
size_t alignment,
size_t offset
);
Paramètres
size
Taille de l'allocation de mémoire demandée.
alignment
Valeur d'alignement, qui doit être un entier à puissance 2.
offset
Décalage dans l'allocation de mémoire pour forcer l'alignement.
Valeur retournée
Pointeur vers le bloc de mémoire qui a été alloué ou NULL
si l'opération a échoué.
Notes
_aligned_offset_malloc
est utile quand l’alignement est nécessaire sur un élément imbriqué, par exemple, sur une classe imbriquée.
_aligned_offset_malloc
est basé sur malloc
; pour plus d’informations, consultez malloc
.
_aligned_offset_malloc
est marqué __declspec(noalias)
et __declspec(restrict)
, ce qui signifie que la fonction est garantie de ne pas modifier les variables globales et que le pointeur retourné n’est pas alias. Pour plus d’informations, consultez noalias
et restrict
.
Cette fonction affecte à errno
la valeur ENOMEM
si l'allocation de mémoire a échoué ou si la taille demandée était supérieure à _HEAP_MAXREQ
. Pour plus d’informations sur errno
, voir errno
, _doserrno
, , _sys_errlist
et _sys_nerr
. De plus, _aligned_offset_malloc
valide ses paramètres. Si alignment
ce n’est pas une puissance de 2, ou s’il offset
n’est pas égal ou égal size
à zéro, cette fonction appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, cette fonction retourne NULL
et affecte la valeur errno
à EINVAL
.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis |
---|---|
_aligned_offset_malloc |
<malloc.h> |
Exemple
Pour plus d’informations, consultez _aligned_malloc
.