Partager via


_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.

Voir aussi

Routines de débogage
_malloc_dbg