_heapchk
Effectue des vérifications de cohérence sur le tas.
int _heapchk( void );
Valeur de retour
_heapchk retourne un des constantes de manifeste d'entiers suivantes définies dans Malloc.h.
_HEAPBADBEGIN
Les informations d'en-tête initiales sont incorrectes ou ne peuvent pas être trouvées._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 apparaît être cohérent.
En outre, si une erreur se produit, _heapchk définit errno à ENOSYS.
Notes
La fonction _heapchk aide au débogage des problèmes liés au tas en vérifiant la cohérence minimale du tas. Si le système d'exploitation ne prend pas en charge _heapchk(par exemple, Windows 98), la fonction retourne _HEAPOK et affecte à errno la valeur ENOSYS.
Configuration requise
Routine |
En-tête requis |
En-tête facultatif |
---|---|---|
_heapchk |
<malloc.h> |
<errno.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
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;
}
}
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.