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


_heapchk

Выполняет проверки согласованности в куче.

int _heapchk( void );

Возвращаемое значение

_heapchk возвращает одну из следующих целочисленных констант манифеста, определенных в Malloc.h.

  • _HEAPBADBEGIN
    Начальные сведения заголовка повреждены или не могут быть найдены.

  • _HEAPBADNODE
    Недопустимый узел был найден или куча повреждена.

  • _HEAPBADPTR
    Указатель на кучу не допустим.

  • _HEAPEMPTY
    Куча не инициализирована.

  • _HEAPOK
    Куча представляется согласованной.

Кроме того, при возникновении ошибки _heapchk устанавливает errno в ENOSYS.

Заметки

Функция _heapchk помогает в отладке связанных с кучей проблем путем проверки минимальной согласованности кучи. Если операционная система не поддерживает _heapchk(например, Windows 98), функция возвращает _HEAPOK и устанавливает errno в ENOSYS.

Требования

Подпрограмма

Обязательный заголовок

Необязательный заголовок

_heapchk

<malloc.h>

<errno.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Пример

// crt_heapchk.c
// This program checks the heap for
// consistency and prints an appropriate message.
 
#include <malloc.h>
#include <stdio.h>

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

   // Allocate and deallocate some memory
   if( (buffer = (char *)malloc( 100 )) != NULL )
      free( buffer );

   // Check heap status
   heapstatus = _heapchk();
   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;
   }
}
  

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Выделение памяти

_heapadd

_heapmin

_heapset

_heapwalk