Skip to content

Latest commit

 

History

History
110 lines (89 loc) · 3.06 KB

File metadata and controls

110 lines (89 loc) · 3.06 KB
title ms.custom ms.date ms.reviewer ms.suite ms.technology ms.tgt_pltfrm ms.topic apiname apilocation apitype f1_keywords dev_langs helpviewer_keywords ms.assetid caps.latest.revision author ms.author manager
_heapchk | Microsoft Docs
11/04/2016
cpp-standard-libraries
article
_heapchk
msvcrt.dll
msvcr80.dll
msvcr90.dll
msvcr100.dll
msvcr100_clr0400.dll
msvcr110.dll
msvcr110_clr0400.dll
msvcr120.dll
msvcr120_clr0400.dll
ucrtbase.dll
api-ms-win-crt-heap-l1-1-0.dll
DLLExport
_heapchk
heapchk
C++
debugging [CRT], heap-related problems
consistency checking of heaps
heapchk function
heaps, checking consistency
_heapchk function
859619a5-1e35-4f02-9e09-11d9fa266ec0
13
corob-msft
corob
ghogen

_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  

See Also

Memory Allocation
_heapadd
_heapmin
_heapset
_heapwalk