Поделиться через


_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