Share via


_heapchk

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at _heapchk.

Runs consistency checks on the heap.

Syntax

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.

See Also

Memory Allocation
_heapadd
_heapmin
_heapset
_heapwalk