_aligned_offset_malloc_dbg

Alloue de la mémoire sur une limite d'alignement spécifiée (version debug uniquement).

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

Paramètres

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

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

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

Un pointeur vers le bloc de mémoire alloué ou à NULLsi l'opération a échoué.

Notes

_aligned_offset_malloc_dbg est une version debug de la fonction de _aligned_offset_malloc .Lorsque _DEBUG n'est pas défini, chaque appel à _aligned_offset_malloc_dbg est réduit à un appel à _aligned_offset_malloc._aligned_offset_malloc et _aligned_offset_malloc_dbg allouent un bloc de mémoire dans le tas de base, mais offre d' _aligned_offset_malloc_dbg 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_malloc_dbg alloue le bloc de mémoire avec un peu plus d'espace que sizedemandé.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.Lorsque le bloc est alloué, la partie utilisateur du bloc est remplie avec la valeur 0xCD et chacune des mémoires tampons de remplacer est remplie avec 0xFD.

_aligned_offset_malloc_dbg est utile dans les situations où l'inscription est nécessaire sur un élément imbriqué ; par exemple, si alignment est nécessaire sur une classe imbriquée.

_aligned_offset_malloc_dbg est basé sur malloc; pour plus d'informations, consultez malloc.

Cette fonction définit errno à ENOMEM si l'allocation de mémoire a échoué ou si la taille demandée est supérieure à _HEAP_MAXREQ.Pour plus d'informations sur errno, consultez errno, _doserrno, _sys_errlist, et _sys_nerr.en outre, _aligned_offset_malloc valide ses paramètres.Si alignment n'est pas une puissance de 2 ou si offset est supérieure ou égale à size 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.

Configuration requise

routine

en-tête requis

_aligned_offset_malloc_dbg

<crtdbg.h>

Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.

bibliothèques

Versions debug de Bibliothèques runtime C uniquement.

É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

Déboguez des routines