_heapset
Verifica heaps quanto à consistência mínima e configura as entradas livres com um valor especificado.
Importante
Essa função está obsoleta. A partir do Visual Studio 2015, ela não está disponível no CRT.
Sintaxe
int _heapset(
unsigned int fill
);
Parâmetros
fill
Caractere de preenchimento.
Valor retornado
_heapset
retorna uma das seguintes constantes de manifesto de inteiro definidas em Malloc.h.
Valor | Descrição |
---|---|
_HEAPBADBEGIN |
As informações do cabeçalho inicial são inválidas ou não foram encontradas. |
_HEAPBADNODE |
Heap danificado ou nó inválido encontrado. |
_HEAPEMPTY |
Heap não inicializado. |
_HEAPOK |
O heap parece ser consistente. |
Além disso, se ocorrer um erro, _heapset
definirá errno
como ENOSYS
.
Comentários
A função _heapset
mostra locais com memória livre ou nós que foram substituídos acidentalmente.
_heapset
verifica a consistência mínima no heap e define cada byte das entradas livres do heap para o valor fill
. Esse valor conhecido mostra quais locais de memória do heap contêm nós livres e quais contêm dados que foram gravados acidentalmente na memória liberada. Se o sistema operacional não der suporte _heapset
(por exemplo, Windows 98), a função retornará _HEAPOK
e será definida errno
como ENOSYS
.
Requisitos
Rotina | Cabeçalho necessário | Cabeçalho opcional |
---|---|---|
_heapset |
<malloc.h> | <errno.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.
Exemplo
// 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 );
}
OK - heap is fine