_aligned_offset_realloc
Modifie la taille d’un bloc de mémoire qui a été alloué avec _aligned_malloc
ou _aligned_offset_malloc
.
Syntaxe
void * _aligned_offset_realloc(
void *memblock,
size_t size,
size_t alignment,
size_t offset
);
Paramètres
memblock
Pointeur de bloc de mémoire actif.
size
Taille de l'allocation de mémoire.
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
_aligned_offset_realloc
retourne un pointeur void vers le bloc de mémoire réalloué (et éventuellement déplacé). La valeur de retour est NULL
si la taille est égale à zéro et que l’argument de mémoire tampon n’est pas NULL
, ou s’il n’y a pas suffisamment de mémoire disponible pour étendre le bloc à la taille donnée. Dans le premier cas, le bloc d'origine est libéré. Dans le second cas, le bloc d'origine est inchangé. La valeur de retour pointe vers un espace de stockage adapté au stockage de n’importe quel type d’objet. Pour obtenir un pointeur vers un autre type que void
, utilisez un cast de type sur la valeur de retour.
_aligned_offset_realloc
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
.
Notes
Comme _aligned_offset_malloc
, _aligned_offset_realloc
permet à une structure d’être alignée à un décalage dans la structure.
_aligned_offset_realloc
est basé sur malloc
. Pour plus d'informations sur l'utilisation de _aligned_offset_malloc
, consultez malloc
. Si memblock
est NULL
, la fonction appelle _aligned_offset_malloc
en interne.
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_realloc
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_realloc |
<malloc.h> |
Exemple
Pour plus d’informations, consultez _aligned_malloc
.