_heapset
Controlla gli heap per coerenza minima e imposta le voci free a un valore specificato.
int _heapset(
unsigned int fill
);
Parametri
- fill
Carattere Fill.
Valore restituito
_heapset restituisce una delle seguenti costanti del manifesto dell'intero definite in Malloc.h.
_HEAPBADBEGIN
Informazioni sull'intestazione iniziale non valide o non trovate._HEAPBADNODE
Heap danneggiato o trovato cattivo nodo di ricerca ._HEAPEMPTY
Heap non inizializzato._HEAPOK
L'heap sembra essere consistente.
Inoltre, se si verifica un errore, _heapset imposta errno a ENOSYS.
Note
La funzione di _heapset mostra le posizioni o nodi di memoria che sono stati inavvertitamente sovrascritti.
_heapset controlla per coerenza minima nell'heap e quindi impostare ogni byte delle voci libere dell'heap al valore di fill. Questo valore noto mostra quali posizioni di memoria dell'heap contengono nodi liberi e quale contengono i dati contenuti in modo non intenzionale scritti nella memoria liberata. Se il sistema operativo non supporta _heapset(ad esempio Windows 98), la funzione restituisce _HEAPOK e imposta errno a ENOSYS.
Requisiti
Routine |
Intestazione obbligatoria |
Intestazione facoltativa |
---|---|---|
_heapset |
<malloc.h> |
<errno.h> |
Per ulteriori 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 );
}
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.