Partager via


_aligned_malloc_dbg

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

Syntaxe

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

Paramètres

size
Taille de l'allocation de mémoire demandée.

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

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

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

Valeur retournée

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 _aligned_malloc fonction. Lorsqu’il _DEBUG n’est pas défini, chaque appel à est _aligned_malloc_dbg 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. Le suivi des types d’allocation spécifiques avec un paramètre de type de bloc n’est pas une fonctionnalité de débogage prise en charge pour les allocations alignées. Les allocations alignées s’affichent en tant que _NORMAL_BLOCK type de bloc.

_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 fournir à l’application des informations d’en-tête de débogage et remplacer les mémoires tampons. Lorsque le bloc est alloué, la partie utilisateur du bloc est remplie avec la valeur 0xCD, et chacune des mémoires tampons de remplacement est remplie de 0xFD.

_aligned_malloc_dbg affecte la valeur errno à ENOMEM 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 et d’autres codes d’erreur, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno De plus, _aligned_malloc_dbg valide ses paramètres. Si alignment la puissance 2 n’est pas égale ou égale à size zéro, cette fonction appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. 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, consultez les détails du tas de débogage CRT. Pour plus d’informations sur les types de blocs d’allocation et leur utilisation, consultez Types de blocs sur le tas de débogage. Pour plus d’informations sur les différences entre les fonctions de tas standard et leurs versions de débogage, consultez Les versions de débogage des fonctions d’allocation de tas.

Spécifications

Routine En-tête requis
_aligned_malloc_dbg <crtdbg.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Bibliothèques

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

Voir aussi

Routines de débogage