_heapchk
Visual Studio .NET 2003
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.
Requirements
| Routine | Required header | Optional headers | Compatibility |
|---|---|---|---|
| _heapchk | <malloc.h> | <errno.h> | Win NT, Win 2000, Win XP |
For additional compatibility information, see Compatibility in the Introduction.
Libraries
All versions of the C run-time libraries.
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;
}
}
Output
OK - heap is fine
See Also
Memory Allocation Routines | _heapadd | _heapmin | _heapset | _heapwalk | Run-Time Routines and .NET Framework Equivalents