_heapset

Controlla la coerenza minima negli heap e imposta le voci disponibili su un valore specificato.

Importante

questa funzione è obsoleta. A partire da Visual Studio 2015 non è disponibile in CRT.

Sintassi

int _heapset(
   unsigned int fill
);

Parametri

fill
Carattere di riempimento.

Valore restituito

_heapset restituisce una delle costanti manifeste di tipo Integer seguenti definite in Malloc.h.

valore Descrizione
_HEAPBADBEGIN Le informazioni di intestazione iniziali non sono valide o non sono state trovate.
_HEAPBADNODE L'heap è danneggiato o è stato travato un nodo non valido.
_HEAPEMPTY L'heap non è stato inizializzato.
_HEAPOK L'heap risulta coerente.

Inoltre, se si verifica un errore, _heapset imposta errno su ENOSYS.

Osservazioni:

La funzione _heapset mostra i nodi o le posizioni di memoria disponibili che sono stati sovrascritti accidentalmente.

_heapset verifica la coerenza minima nell'heap e quindi imposta ogni byte delle voci disponibili dell'heap sul valore fill. Questo valore noto mostra le posizioni di memoria dell'heap che contengono nodi disponibili e quelle che contengono dati scritti accidentalmente nella memoria liberata. Se il sistema operativo non supporta _heapset(ad esempio, Windows 98), la funzione restituisce _HEAPOK e imposta errno su ENOSYS.

Requisiti

Ciclo Intestazione obbligatoria Intestazione facoltativa
_heapset <malloc.h> <errno.h>

Per altre informazioni sulla compatibilità, vedere la sezione Compatibilità nell'introduzione.

Esempio

// 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

Vedi anche

Allocazione di memoria
_heapadd
_heapchk
_heapmin
_heapwalk