Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 ENOSYSvaleur 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