_aligned_offset_realloc_dbg
Modifie la taille d’un bloc de mémoire qui a été alloué avec _aligned_malloc
ou _aligned_offset_malloc
(version de débogage uniquement).
Syntaxe
void * _aligned_offset_realloc_dbg(
void *memblock,
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
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.
filename
Pointeur vers le nom du fichier source qui a demandé l’opération aligned_offset_realloc
ou NULL
.
linenumber
Numéro de ligne dans le fichier source où l’opération aligned_offset_realloc
a été demandée ou NULL
.
Valeur retournée
_aligned_offset_realloc_dbg
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 type autre que void, utilisez un cast de type sur la valeur de retour.
Notes
_aligned_offset_realloc_dbg
est une version de débogage de la _aligned_offset_realloc
fonction. Lorsqu’il _DEBUG
n’est pas défini, chaque appel à est _aligned_offset_realloc_dbg
réduit à un appel à _aligned_offset_realloc
. Les deux _aligned_offset_realloc
et _aligned_offset_realloc_dbg
réallouer un bloc de mémoire dans le tas de base, mais _aligned_offset_realloc_dbg
prennent en charge plusieurs fonctionnalités de débogage : les mémoires tampons situées sur l’un ou l’autre côté du bloc pour tester les fuites et filename
/linenumber
les informations permettant de déterminer l’origine des demandes d’allocation. Le suivi des types d’allocation spécifiques avec un paramètre de type de bloc n’est pas une fonctionnalité de débogage prise en charge pour les allocations alignées. Les allocations alignées s’affichent en tant que _NORMAL_BLOCK
type de bloc.
Comme _aligned_offset_malloc
, _aligned_offset_realloc_dbg
permet à une structure d’être alignée à un décalage dans la structure.
_realloc_dbg
réalloue le bloc de mémoire spécifié avec un peu plus d'espace que la valeur newSize
demandée. newSize
peut être inférieure ou supérieure à la taille du bloc de mémoire alloué initialement. L’espace supplémentaire est utilisé par le gestionnaire de tas de débogage pour lier les blocs de mémoire de débogage et fournir à l’application des informations d’en-tête de débogage et remplacer les mémoires tampons. La réaffectation peut déplacer le bloc de mémoire d’origine vers un autre emplacement dans le tas et modifier la taille du bloc de mémoire. Si le bloc de mémoire est déplacé, son contenu d'origine est remplacé.
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_dbg
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
.
Pour plus d’informations sur la façon dont les blocs de mémoire sont alloués, initialisés et gérés dans la version de débogage du tas de base, consultez les détails du tas de débogage CRT. Pour plus d’informations sur les types de blocs d’allocation et leur utilisation, consultez Types de blocs sur le tas de débogage. Pour plus d’informations sur les différences entre les fonctions de tas standard et leurs versions de débogage, consultez Les versions de débogage des fonctions d’allocation de tas.
Spécifications
Routine | En-tête requis |
---|---|
_aligned_offset_realloc_dbg |
<crtdbg.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Bibliothèques
Uniquement les versions de débogage des bibliothèques Runtime C.