_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