_recalloc_dbg

 

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

Réalloue un tableau et initialise ses éléments à 0 (version de débogage uniquement).

void *_recalloc_dbg(   
   void *userData,  
   size_t num,  
   size_t size,  
   int blockType,  
   const char *filename,  
   int linenumber   
);  

Paramètres

userData
Pointeur vers le bloc de mémoire précédemment alloué.

num
Nombre de blocs de mémoire demandé.

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

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

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.

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 _recalloc_dbg a été appelée explicitement ou _CRTDBG_MAP_ALLOC constante du préprocesseur a été définie.

Une fois exécutée, cette fonction retourne un pointeur vers la partie utilisateur du bloc de mémoire réalloué, appelle la nouvelle fonction de 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 _recalloc (fonction).

_recalloc_dbgest une version debug de la _recalloc (fonction). Lors de la _DEBUG n’est pas défini, chaque appel à _recalloc_dbg est réduit à un appel à _recalloc. Les deux _recalloc et _recalloc_dbg réallouer un bloc de mémoire dans le tas de base, mais _recalloc_dbg gère 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.

_recalloc_dbgréalloue le bloc de mémoire spécifié avec un peu plus d’espace que la taille demandée (num * size) qui peut être supérieure ou inférieure à la taille du bloc de mémoire alloué initialement. 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. La réallocation peut entraîner un déplacement du bloc de mémoire initial vers un autre emplacement dans le tas, ainsi qu'une modification de la taille du bloc de mémoire. La partie utilisateur du bloc contient la valeur 0xCD et chaque mémoire tampon de remplacement contient 0xFD.

_recalloc_dbg affecte à errno la valeur ENOMEM si une allocation de mémoire échoue ; la valeur EINVAL est renvoyée 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 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
_recalloc_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.

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

Routines de débogage

Afficher: