_aligned_recalloc_dbg

 

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

Modifie la taille d’un bloc de mémoire qui a été alloué avec _aligned_malloc ou _aligned_offset_malloc et initialise la mémoire à 0 (version debug uniquement).

void * _aligned_recalloc_dbg(  
   void * memblock,   
   size_t num,  
   size_t size,   
   size_t alignment,  
   const char *filename,  
   int linenumber  
);  

Paramètres

[in] memblock
Pointeur de bloc de mémoire actif.

[in] num
Nombre d'éléments.

[in] size
Taille en octets de chaque élément.

[in] alignment
Valeur d'alignement, qui doit être un entier à puissance 2.

[in] filename
Pointeur vers le nom du fichier source qui a demandé l'opération d'allocation ou NULL.

[in] linenumber
Numéro de ligne dans le fichier source où l'opération d'allocation a été demandée ou NULL.

_aligned_recalloc_dbg retourne un pointeur void vers le bloc de mémoire réalloué (et éventuellement déplacé). La valeur de retour est NULL si la taille est égale à zéro et l'argument de mémoire tampon n'est pas NULL, ou si la mémoire disponible est insuffisante pour étendre le bloc à la taille donnée. Dans le premier cas, le bloc d'origine est libéré. Dans le second cas, le bloc d'origine est inchangé. La valeur de retour pointe vers un espace de stockage qui est obligatoirement aligné correctement pour le stockage de tout type d'objet. Pour obtenir un pointeur vers un type autre que void, utilisez un cast de type sur la valeur de retour.

Le fait de réallouer la mémoire et de modifier l'alignement d'un bloc constitue une erreur.

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

_aligned_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 les mémoires tampons de remplacement contiennent 0xFD.

_aligned_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.

De plus, _aligned_recalloc_dbg valide ses paramètres. Si alignment n’est pas une puissance de 2, cette fonction appelle le Gestionnaire de paramètre non valide, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, cette fonction retourne NULL et affecte la valeur errno à EINVAL.

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
_aligned_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: