Share via


_aligned_malloc_dbg

Alloue de la mémoire sur une limite d'alignement spécifiée avec de l'espace supplémentaire pour un en-tête de débogage et des mémoires tampons de remplacement (version de débogage uniquement).

void * _aligned_malloc_dbg(     size_t size,      size_t alignment,    const char *filename,    int linenumber  );

Paramètres

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

  • [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.

Valeur de retour

Pointeur vers le bloc de mémoire qui a été alloué ou NULL si l'opération a échoué.

Notes

_aligned_malloc_dbg est une version de débogage de la fonction _aligned_malloc. Quand _DEBUG n'est pas défini, chaque appel à _aligned_malloc_dbg est réduit à un appel à _aligned_malloc. _aligned_malloc et _aligned_malloc_dbg allouent toutes deux un bloc de mémoire dans le tas de base, mais _aligned_malloc_dbg propose 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 et des informations filename/linenumber pour déterminer l'origine des demandes d'allocation.

_aligned_malloc_dbg alloue le bloc de mémoire avec un peu plus d'espace que la valeur size demandée. 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. Quand le bloc est alloué, la partie utilisateur du bloc est renseignée avec la valeur 0xCD et chaque mémoire tampon de remplacement est renseignée avec la valeur 0xFD.

_aligned_malloc_dbg affecte la valeur ENOMEM à errno si une allocation de mémoire échoue ou 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 sur ce code d'erreur et d'autres, voir errno, _doserrno, _sys_errlist et _sys_nerr. De plus, _aligned_malloc_dbg valide ses paramètres. Si alignment n'est pas une puissance de 2 ou size est égal à zéro, 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 EINVAL à errno.

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_malloc_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