_free_dbg
Libère un bloc de mémoire dans le tas (version de débogage uniquement).
Syntaxe
void _free_dbg(
void *userData,
int blockType
);
Paramètres
userData
Pointeur désignant le bloc de mémoire alloué à libérer.
blockType
Type de bloc de mémoire alloué à libérer : _CLIENT_BLOCK
, _NORMAL_BLOCK
ou _IGNORE_BLOCK
.
Notes
La _free_dbg
fonction est une version de débogage de la free
fonction. Lorsqu’il _DEBUG
n’est pas défini, chaque appel à est _free_dbg
réduit à un appel à free
. free
et _free_dbg
libèrent toutes deux un bloc de mémoire dans le tas de base, mais _free_dbg
gère deux fonctionnalités de débogage : la capacité à conserver les blocs libérés dans la liste liée du tas pour simuler des conditions de mémoire insuffisante et un paramètre de type de bloc pour libérer des types d’allocations spécifiques.
_free_dbg
effectue une vérification de validité sur tous les fichiers et emplacements de blocs spécifiés avant de procéder à la libération. L’application n’est pas censée fournir ces informations. Lorsqu’un bloc de mémoire est libéré, le gestionnaire de tas de débogage vérifie automatiquement l’intégrité des mémoires tampons de chaque côté de la partie utilisateur. Il émet un rapport d’erreur s’il détecte un remplacement. Si le _CRTDBG_DELAY_FREE_MEM_DF
champ de bits de l’indicateur _crtDbgFlag
est défini, le bloc libéré est rempli avec la valeur 0xDD, affecté le _FREE_BLOCK
type de bloc et conservé dans la liste liée du tas des blocs de mémoire.
Si une erreur se produit pendant la libération de la mémoire, errno
est défini avec les informations du système d'exploitation sur la nature de la défaillance. Pour plus d'informations, voir errno
, _doserrno
, _sys_errlist
et _sys_nerr
.
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 l’appel d’une fonction de tas standard et la version de débogage, consultez Les versions de débogage des fonctions d’allocation de tas.
Spécifications
Routine | En-tête requis |
---|---|
_free_dbg |
<crtdbg.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
Pour obtenir un exemple d’utilisation _free_dbg
, consultez crt_dbg2
.