Partager via


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

Voir aussi

Allocation de mémoire
_heapadd
_heapmin
_heapset
_heapwalk