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

_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

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

Per altre informazioni sulla compatibilità, vedere 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  

Vedere anche

Allocazione di memoria
_heapadd
_heapchk
_heapmin
_heapwalk