_heapchk

 

For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

Runs consistency checks on the heap.

int _heapchk( void );  

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

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.

RoutineRequired headerOptional header
_heapchk<malloc.h><errno.h>

For more compatibility information, see Compatibility in the Introduction.

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

Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.

Memory Allocation
_heapadd
_heapmin
_heapset
_heapwalk

Show: