Partager via


_aligned_offset_realloc_dbg

Modifie la taille d'un bloc de mémoire qui a été alloué avec _aligned_malloc ou _aligned_offset_malloc (version de débogage uniquement).

void * _aligned_offset_realloc_dbg(    void *memblock,     size_t size,     size_t alignment,    size_t offset,    const char *filename,    int linenumber  );

Paramètres

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

  • [in] size
    Taille de l'allocation de mémoire.

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

  • [in] offset
    Décalage dans l'allocation de mémoire pour forcer l'alignement.

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

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

Valeur de retour

_aligned_offset_realloc_dbg retourne un pointeur vide 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.

Notes

_aligned_offset_realloc_dbg est une version de débogage de la fonction _aligned_offset_realloc. Quand _DEBUG n'est pas défini, chaque appel à _aligned_offset_realloc_dbg est réduit à un appel à _aligned_offset_realloc. _aligned_offset_realloc et _aligned_offset_realloc_dbg réallouent toutes deux un bloc de mémoire dans le tas de base, mais _aligned_offset_realloc_dbg gère plusieurs fonctionnalités de débogage : des 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 de types d'allocation spécifiques et des informations filename/linenumber pour déterminer l'origine des demandes d'allocation.

Comme _aligned_offset_malloc, _aligned_offset_realloc_dbg autorise une structure à être alignée au niveau d'un décalage au sein de la structure.

_realloc_dbg réalloue le bloc de mémoire spécifié avec un peu plus d'espace que la valeur newSize demandée. La valeur de newSize peut être inférieure ou supé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. Si le bloc de mémoire est déplacé, son contenu d'origine est remplacé.

Cette fonction affecte à errno la valeur ENOMEM si l'allocation de mémoire a échoué ou si la taille demandée était supérieure à _HEAP_MAXREQ. Pour plus d'informations sur errno, consultez errno, _doserrno, _sys_errlist et _sys_nerr. De plus, _aligned_offset_realloc_dbg valide ses paramètres. Si alignment n'est pas une puissance de 2 ou si offset est supérieur ou égal à size et différent de zéro, cette fonction appelle le gestionnaire de paramètres non valides, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, cette fonction retourne NULL et affecte à errno la valeur 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 Détails du tas de débogage CRT. Pour plus d'informations sur les types de blocs d'allocation et sur leur utilisation, voir Types de bloc sur le tas de débogage. Pour plus d'informations sur les différences entre l'appel à une fonction de tas standard et sa version de débogage dans une build de débogage d'une application, voir Versions Debug des fonctions d'allocation du tas.

Configuration requise

Routine

En-tête requis

_aligned_offset_realloc_dbg

<crtdbg.h>

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

Bibliothèques

Uniquement les versions de débogage des bibliothèques Runtime C.

Équivalent .NET Framework

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

Voir aussi

Référence

Routines de débogage