_heapchk
Exécute des vérifications de cohérence sur le tas.
Syntaxe
int _heapchk( void );
Valeur retournée
_heapchk
retourne une des constantes manifestes entières suivantes définies dans Malloc.h.
Valeur retournée | Condition |
---|---|
_HEAPBADBEGIN |
Les informations d’en-tête initiales sont incorrectes ou introuvables. |
_HEAPBADNODE |
Un nœud incorrect a été trouvé ou le tas est endommagé. |
_HEAPBADPTR |
Le pointeur vers le tas n’est pas valide. |
_HEAPEMPTY |
Le tas n’a pas été initialisé. |
_HEAPOK |
Le tas est cohérent. |
En outre, si une erreur se produit, _heapchk
définit errno
sur ENOSYS
.
Notes
La fonction _heapchk
aide à déboguer les problèmes liés au tas en vérifiant la cohérence minimale de celui-ci. Si le système d’exploitation ne prend pas en charge _heapchk
(par exemple, Windows 98), la fonction retourne _HEAPOK
et définit la ENOSYS
valeur errno
.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis | En-tête facultatif |
---|---|---|
_heapchk |
<malloc.h> | <errno.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_heapchk.c
// This program checks the heap for
// consistency and prints an appropriate message.
#include <malloc.h>
#include <stdio.h>
int main( void )
{
int heapstatus;
char *buffer;
// Allocate and deallocate some memory
if( (buffer = (char *)malloc( 100 )) != NULL )
free( buffer );
// Check heap status
heapstatus = _heapchk();
switch( heapstatus )
{
case _HEAPOK:
printf(" OK - heap is fine\n" );
break;
case _HEAPEMPTY:
printf(" OK - heap is empty\n" );
break;
case _HEAPBADBEGIN:
printf( "ERROR - bad start of heap\n" );
break;
case _HEAPBADNODE:
printf( "ERROR - bad node in heap\n" );
break;
}
}
OK - heap is fine
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour