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