Partager via


_aligned_offset_recalloc_dbg

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

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

Paramètres

  • [in] memblock
    le pointeur actuel de bloc de mémoire.

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

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

  • [in] alignment
    La valeur d'inscription, qui doit être une puissance entière à 2.

  • [in] offset
    l'offset 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 ou NULL d' realloc .

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

Valeur de retour

_aligned_offset_recalloc_dbg retourne un pointeur void (et éventuellement déplacé) au bloc de mémoire réaffecté.La valeur de retour est NULL si la taille est zéro et l'argument de mémoire tampon n'est pas NULL, ou s'il n'y a pas assez de mémoire libre pour développer le bloc à la taille donnée.dans le premier cas, le bloc d'origine est libéré.Dans le deuxième cas, le bloc d'origine reste inchangé.Les points de valeur de retour à un espace de stockage qui est obligatoirement aligné pour le stockage d'un type d'objet.Pour obtenir un pointeur vers un type autre que le type void, utilisez un cast de type sur la valeur de retour.

Notes

_aligned_offset_realloc_dbg est une version debug de la fonction de _aligned_offset_recalloc .Lorsque _DEBUG n'est pas défini, chaque appel à _aligned_offset_recalloc_dbg est réduit à un appel à _aligned_offset_recalloc._aligned_offset_recalloc et l' _aligned_offset_recalloc_dbg réaffectent un bloc de mémoire dans le tas de base, mais _aligned_offset_recalloc_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.

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

Cette fonction définit errno à ENOMEM si l'allocation de mémoire a échoué ou si la taille demandée (num * size) était supérieure à _HEAP_MAXREQ.Pour plus d'informations sur errno, consultez errno, _doserrno, _sys_errlist, et _sys_nerr.en outre, _aligned_offset_recalloc_dbg valide ses paramètres.Si alignment n'est pas une puissance de 2 ou si offset est supérieure ou égale à la taille demandée et une valeur différente de zéro, cette fonction appelle le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, retourne NULL de cette fonction et définit errno à EINVAL.

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.

Configuration requise

routine

en-tête requis

_aligned_offset_recalloc_dbg

<malloc.h>

Équivalent .NET Framework

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

Voir aussi

Référence

Alignement de données