_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> |
如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility) 。
範例
// 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。如需詳細資訊,請參閱平台叫用範例。