Partilhar via


_heapchk

Executa verificações de consistência no heap.

Sintaxe

int _heapchk( void );

Valor retornado

_heapchk retorna uma das seguintes constantes de manifesto de inteiro definidas em Malloc.h.

Valor retornado Condição
_HEAPBADBEGIN As informações iniciais do cabeçalho são inválidas ou não podem ser encontradas.
_HEAPBADNODE Um nó inválido foi encontrado ou o heap está danificado.
_HEAPBADPTR O ponteiro no heap não é válido.
_HEAPEMPTY O heap não foi inicializado.
_HEAPOK O heap parece ser consistente.

Além disso, se ocorrer um erro, _heapchk definirá errno como ENOSYS.

Comentários

A função _heapchk ajuda a depurar problemas relacionados ao heap verificando a consistência mínima do heap. Se o sistema operacional não der suporte _heapchk(por exemplo, Windows 98), a função retornará _HEAPOK e será definida errno como ENOSYS.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Requisitos

Rotina Cabeçalho necessário Cabeçalho opcional
_heapchk <malloc.h> <errno.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// 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;
   }
}
OK - heap is fine

Confira também

Alocação de memória
_heapadd
_heapmin
_heapset
_heapwalk