_aligned_offset_malloc_dbg
Alloue de la mémoire sur une limite d’alignement spécifiée (version de débogage uniquement).
Syntaxe
void * _aligned_offset_malloc_dbg(
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
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.
filename
Pointeur vers le nom du fichier source qui a demandé l'opération d'allocation ou NULL
.
linenumber
Numéro de ligne dans le fichier source où l'opération d'allocation a été demandée ou NULL
.
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_dbg
est une version de débogage de la _aligned_offset_malloc
fonction. Lorsqu’il _DEBUG
n’est pas défini, chaque appel à est _aligned_offset_malloc_dbg
réduit à un appel à _aligned_offset_malloc
. _aligned_offset_malloc
et _aligned_offset_malloc_dbg
allouent toutes deux un bloc de mémoire dans le tas de base, mais _aligned_offset_malloc_dbg
propose plusieurs fonctionnalités de débogage : des mémoires tampons de chaque côté de la partie utilisateur du bloc pour vérifier la présence de fuites et des informations filename
/linenumber
pour 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.
_aligned_offset_malloc_dbg
alloue le bloc de mémoire avec un peu plus d'espace que la valeur size
demandée. 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. Lorsque le bloc est alloué, la partie utilisateur du bloc est remplie avec la valeur 0xCD, et chacune des mémoires tampons de remplacement est remplie de 0xFD.
_aligned_offset_malloc_dbg
est utile quand l’alignement est nécessaire sur un élément imbriqué, par exemple, sur une classe imbriquée.
_aligned_offset_malloc_dbg
est basé sur malloc
; pour plus d’informations, consultez malloc
.
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
.
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.
Spécifications
Routine | En-tête requis |
---|---|
_aligned_offset_malloc_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.