Partager via


_realloc_dbg

Réaffecte un bloc de mémoire spécifié dans le tas en déplaçant et/ou en redimensionnant le bloc (version Debug uniquement).

void *_realloc_dbg(
   void *userData,
   size_t newSize,
   int blockType,
   const char *filename,
   int linenumber 
);

Paramètres

  • userData
    Pointeur du bloc de mémoire précédemment allouée.

  • newSize
    Nouvelle taille demandée pour le bloc réalloué (en octets).

  • blockType
    Type demandé du bloc réaffecté : _CLIENT_BLOCK ou _NORMAL_BLOCK.

  • filename
    Le pointeur du nom du fichier source qui a demandé l'opération realloc ou NULL.

  • linenumber
    Numéro de ligne dans le fichier source où l'opération realloc ou NULL.

Les paramètres filename et linenumber sont uniquement disponibles si _realloc_dbg a été appelé explicitement ou si la constante de préprocesseur _CRTDBG_MAP_ALLOC a été définie.

Valeur de retour

Dans l'achèvement réussi, le retour de cette fonction ou un pointeur vers la partie utilisateur du bloc de mémoire réaffecté, appelle la fonction gestionnaire, ou renvoie NULL. Pour une description complète du comportement de retour, consultez la section Notes suivante. Pour plus d'informations sur la façon dont la nouvelle fonction gestionnaire est utilisée, consultez la fonction ".

Notes

_realloc_dbg est une version Debug de la fonction ". Lorsque _DEBUG n'est pas défini, chaque appel à _realloc_dbg est réduit à un appel à realloc. A la fois realloc et _realloc_dbg redimensionnent un bloc de mémoire dans la pile de base, mais _realloc_dbg s'adapte à plusieurs fonctionnalités de débogage : mémoires tampons de chaque côté de la partie utilisateur du bloc à déterminer des fuites, un paramètre de type de bloc pour suivre des types spécifiques d'allocation, et filename/linenumber pour déterminer l'origine des demandes d'allocation.

_realloc_dbg réalloue le bloc de mémoire spécifié avec légèrement plus d'espace que demandait newSize. newSize peut être supérieure ou inférieure à la taille du bloc de mémoire initialement alloué. L'espace supplémentaire est utilisé par le gestionnaire du tas de débogage pour lier les blocs de mémoire de débogage, pour fournir à l'application les informations d'en-tête du débogage et pour remplacer des mémoires tampons. Une redistribution peut avoir comme conséquence le déplacement du bloc mémoire d'origine vers un endroit de la pile, ainsi qu'en modifiant la taille du bloc de mémoire. Si le bloc de mémoire est déplacé, le contenu du bloc d'origine est remplacée.

_realloc_dbg définit errno à ENOMEM si une allocation de mémoire échoue ou si la quantité de mémoire nécessaire (charge mémoire y compris mentionnée précédemment) dépasse _HEAP_MAXREQ. Pour plus d'informations sur ces codes de retour et autres, consultez errno, _doserrno, _sys_errlist et _sys_nerr.

Pour obtenir des informations sur la façon dont les blocs de mémoire sont alloués, initialisés, et gérés dans la version Debug du tas de base, consultez Détails du tas de débogage CRT. Pour obtenir des informations sur les types de bloc d'allocation et leur utilisation, consultez Types de blocs sur le tas de débogage. Pour obtenir des informations sur les différences entre appeler une fonction standard du tas et sa version Debug dans une version debug d'une application, consultez Versions Debug des fonctions d'allocation du tas.

Configuration requise

Routine

En-tête requis

_realloc_dbg

<crtdbg.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Bibliothèques

Seulement les versions debug des bibliothèques Runtime C.

Exemple

Consultez l'exemple décrit dans la rubrique sous _msize_dbg.

Équivalent .NET Framework

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

Voir aussi

Référence

Routines de débogage

_malloc_dbg