共用方式為


_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。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

記憶體配置

_heapadd

_heapmin

_heapset

_heapwalk