_malloc_dbg

 

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

Alloue un bloc de mémoire dans le tas avec de l'espace supplémentaire pour un en-tête de débogage et des mémoires tampons de remplacement (version de débogage uniquement).

void *_malloc_dbg(  
   size_t size,  
   int blockType,  
   const char *filename,  
   int linenumber   
);  

Paramètres

size
Taille demandée du bloc de mémoire (en octets).

blockType
Type demandé du bloc de mémoire : _CLIENT_BLOCK ou _NORMAL_BLOCK.

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.

Le filename et linenumber paramètres sont disponibles uniquement quand _malloc_dbg a été appelée explicitement ou _CRTDBG_MAP_ALLOC constante du préprocesseur a été définie.

Une fois l'opération réussie, cette fonction retourne un pointeur vers la partie utilisateur du bloc de mémoire alloué, appelle la fonction du nouveau gestionnaire ou retourne Null. Pour obtenir une description complète du comportement de retour, voir la section Notes suivante. Pour plus d’informations sur l’utilisation de la nouvelle fonction de gestionnaire, consultez le malloc (fonction).

_malloc_dbgest une version debug de la malloc (fonction). Lors de la _DEBUG n’est pas défini, chaque appel à _malloc_dbg est réduit à un appel à malloc. Les deux malloc et _malloc_dbg allouer un bloc de mémoire dans le tas de base, mais _malloc_dbg propose plusieurs fonctionnalités de débogage : mémoires tampons de chaque côté de la partie utilisateur du bloc pour vérifier la présence de fuites, un paramètre de type de bloc pour effectuer le suivi des types d’allocation spécifiques et filename / linenumber plus d’informations pour déterminer l’origine des demandes d’allocation.

_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 pour fournir à l'application des informations sur les en-têtes de débogage et les mémoires tampons de remplacement. Quand le bloc est alloué, la partie utilisateur du bloc est renseignée avec la valeur 0xCD et chaque mémoire tampon de remplacement est renseignée avec la valeur 0xFD.

_malloc_dbg affecte la valeur errno à ENOMEM si une allocation de mémoire échoue ou si la quantité de mémoire nécessaire (y compris la surcharge mentionnée précédemment) dépasse _HEAP_MAXREQ. Pour plus d’informations à ce sujet et autres codes d’erreur, 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
_malloc_dbg<crtdbg.h>

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

Les versions Debug de les bibliothèques Runtime C uniquement.

Pour obtenir un exemple montrant comment utiliser _malloc_dbg, consultez crt_dbg1.

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
_calloc_dbg
_calloc_dbg

Afficher: