_heapchk
运行堆中的一致性检查。
int _heapchk( void );
返回值
_heapchk 返回在 Malloc.h 定义的以下整数清单常数之一。
_HEAPBADBEGIN
初始标题信息是错误的或无法找到。_HEAPBADNODE
已找到错误节点或损坏堆。_HEAPBADPTR
指向堆中无效。_HEAPEMPTY
堆未初始化。_HEAPOK
堆似乎是一致的。
此外,在中,如果发生错误, _heapchk 设置 errno 到 ENOSYS。
备注
_heapchk 功能可通过检查调试堆相关的问题堆的最小的一致性。 如果操作系统不支持 _heapchk(例如, Windows 98),则该函数返回 _HEAPOK 并将 errno 到 ENOSYS。
要求
实例 |
必需的头 |
可选标头 |
---|---|---|
_heapchk |
malloc.h |
errno.h |
有关更多兼容性信息,请参见中介绍的 兼容性 。
示例
// 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;
}
}
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例。