_heapset
检查最小的一致性堆栈并设置任意输入为指定值。
int _heapset(
unsigned int fill
);
参数
- 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> |
有关更多兼容性信息,请参见“简介”中的兼容性。
示例
// 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。有关更多信息,请参见平台调用示例。