_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.

Retornar valor

_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 oferecer suporte _heapset(por exemplo, Windows 98), a função retornará _HEAPOK e definirá 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

Confira também

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