_free_dbg

 

Date de publication : août 2016

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Libère un bloc de mémoire dans le tas (version debug uniquement).

void _free_dbg(   
   void *userData,  
   int blockType   
);  

Paramètres

userData
Pointeur vers 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.

Le _free_dbg fonction est une version debug de la libre (fonction). Lors de la _DEBUG n’est pas défini, chaque appel à _free_dbg est réduit à un appel à free. Les deux free et _free_dbg Libérez un bloc de mémoire dans le tas de base, mais _free_dbg gère deux fonctionnalités de débogage : la capacité à conserver libérés blocs 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. Il n'est pas prévu que l'application fournisse ces informations. Quand 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 et émet un rapport d'erreurs si un remplacement a eu lieu. Si le _CRTDBG_DELAY_FREE_MEM_DF champ de bits de la _crtDbgFlag est défini, le bloc libéré est renseigné avec la valeur 0xDD, le _FREE_BLOCK type de bloc et conservées dans la liste liée du tas de 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, consultez 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, voir CRT Debug Heap Details. Pour plus d’informations sur les types de blocs d’allocation et comment elles sont utilisées, consultez Types de bloc sur le tas de débogage. Pour plus d’informations sur les différences entre appeler une fonction de tas standard et sa version de débogage dans une version debug d’une application, consultez Versions Debug des tas d’Allocation fonctions.

RoutineEn-tête requis
_free_dbg<crtdbg.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility dans l’introduction.

Pour obtenir un exemple montrant comment utiliser _free_dbg, consultez crt_dbg2.

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Routines de débogage
_malloc_dbg

Afficher: