Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Runs consistency checks on the heap.
int _heapchk( void );
Return Value
_heapchk returns one of the following integer manifest constants defined in Malloc.h.
- _HEAPBADBEGIN 
 Initial header information is bad or cannot be found.
- _HEAPBADNODE 
 Bad node has been found or heap is damaged.
- _HEAPBADPTR 
 Pointer into heap is not valid.
- _HEAPEMPTY 
 Heap has not been initialized.
- _HEAPOK 
 Heap appears to be consistent.
In addition, if an error occurs, _heapchk sets errno to ENOSYS.
Remarks
The _heapchk function helps debug heap-related problems by checking for minimal consistency of the heap. If the operating system does not support _heapchk(for example, Windows 98), the function returns _HEAPOK and sets errno to ENOSYS.
Requirements
| Routine | Required header | Optional header | 
|---|---|---|
| _heapchk | <malloc.h> | <errno.h> | 
For more compatibility information, see Compatibility in the Introduction.
Example
// 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
.NET Framework Equivalent
Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.