Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais
Nous recommandons d’utiliser Visual Studio 2017
Cette documentation est archivée et n’est pas conservée.

_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 
);

userData

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

newSize

taille demandée pour le bloc réaffecté (octets).

blockType

type demandé pour le bloc réaffecté : _CLIENT_BLOCK ou _NORMAL_BLOCK.

filename

Pointeur vers le nom du fichier source qui a demandé l'opération ou NULL d' realloc .

linenumber

Numéro de ligne dans le fichier source où l'opération d' realloc a été demandée ou NULL.

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

En cas de réussite, le retour de cette fonction ou un pointeur vers la partie utilisateur du bloc de mémoire réaffecté, appelle la fonction gestionnaire, ou retourne 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 de realloc .

_realloc_dbg est une version debug de la fonction de realloc . Lorsque _DEBUG n'est pas défini, chaque appel à _realloc_dbg est réduit à un appel à realloc. realloc et _realloc_dbg réaffectent un bloc de mémoire dans le tas 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/informations d'linenumber pour déterminer l'origine des demandes d'allocation.

_realloc_dbg réaffecte du bloc de mémoire spécifié avec un peu plus d'espace que newSizedemandé. newSize peut être supérieur ou égal à la taille du bloc de mémoire alloué à l'origine. L'espace supplémentaire est utilisé par le gestionnaire du tas de débogage pour lier les blocs de mémoire de débogage et pour fournir à l'application les informations d'en-tête du débogage et remplacer des mémoires tampons. La redistribution peut avoir en déplaçant le bloc de mémoire d'origine vers un autre emplacement dans le tas, 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 ce point et d'autres codes d'erreur, consultez errno, _doserrno, _sys_errlist, et _sys_nerr.

Pour plus d'informations sur la manière dont les blocs de mémoire sont alloués, initialisés, et gérés dans la version debug de tas de base, consultez gestion de la mémoire et le tas de débogage. Pour plus d'informations sur les types de bloc d'allocation et leur utilisation, consultez types de blocs sur le tas de débogage. Pour plus d'informations sur les différences entre appeler une fonction standard du tas et sa version debug dans une version debug d'une application, consultez À l'aide de la version debug ou la version de base.

routine

en-tête requis

_realloc_dbg

<crtdbg.h>

Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.

bibliothèques

Versions debug de Bibliothèques runtime C uniquement.

Consultez l'exemple illustré dans la rubrique de _msize_dbg .

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Afficher: