共用方式為


_heapset

檢查為最小的一致性堆疊並將可用輸入為指定值。

int _heapset( 
   unsigned int fill 
);

參數

  • fill
    填入字元。

傳回值

_heapset 傳回在 Malloc.h 定義的下列整數資訊清單常數。

  • _HEAPBADBEGIN
    初始標頭資訊無效或找不到。

  • _HEAPBADNODE
    堆積損毀的或找到的錯誤節點。

  • _HEAPEMPTY
    堆積尚未初始化

  • _HEAPOK
    堆積似乎是一致的。

此外,如果發生錯誤,則為 _heapset ,將 errno 設為 ENOSYS。

備註

_heapset 函式會釋放不小心覆寫的記憶體位置或節點。

_heapset 會檢查堆積的最小的一致性然後設定堆積的可用項目的每個位元組設為 fill 值。 這個堆積包含記憶體位置釋放節點,並包含資料給釋放記憶體無意中被寫入的已知值中。 如果作業系統不支援 _heapset(例如, Windows 98),則函式會傳回 _HEAPOK 且將 errno 設為 ENOSYS。

需求

常式

必要的標頭

選擇性標頭

_heapset

<malloc.h>

<errno.h>

如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility)

範例

// crt_heapset.c
// This program checks the heap and
// fills in free entries with the character 'Z'.
 

#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int heapstatus;
   char *buffer;

   if( (buffer = malloc( 1 )) == NULL ) // Make sure heap is 
      exit( 0 );                        //    initialized     
   heapstatus = _heapset( 'Z' );        // Fill in free entries 
   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;
   }
   free( buffer );
}
  

.NET Framework 對等用法

不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

記憶體配置

_heapadd

_heapchk

_heapmin

_heapwalk