_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

有关更多兼容性信息,请参见中介绍的 兼容性

示例

// 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