_heapset
Kontroluje minimální konzistenci a nastaví volné položky na zadanou hodnotu.
Důležité
Tato funkce je zastaralá. Počínaje sadou Visual Studio 2015 není v CRT k dispozici.
Syntaxe
int _heapset(
unsigned int fill
);
Parametry
fill
Výplň znaku
Vrácená hodnota
_heapset
vrátí jednu z následujících celočíselné konstanty manifestu definované v Malloc.h.
Hodnota | Popis |
---|---|
_HEAPBADBEGIN |
Informace o počáteční hlavičce jsou neplatné nebo nebyly nalezeny. |
_HEAPBADNODE |
Byla nalezena poškozená halda nebo chybný uzel. |
_HEAPEMPTY |
Halda není inicializována. |
_HEAPOK |
Halda je zřejmě konzistentní. |
Kromě toho, pokud dojde k chybě, _heapset
nastaví errno
na ENOSYS
.
Poznámky
Funkce _heapset
zobrazuje umístění volného paměti nebo uzly, které byly neúmyslně přepsány.
_heapset
zkontroluje minimální konzistenci haldy a pak nastaví každý bajt volných položek haldy na fill
hodnotu. Tato známá hodnota ukazuje, která umístění paměti haldy obsahují volné uzly a která obsahují data, která byla neúmyslně zapsána do uvolněné paměti. Pokud operační systém nepodporuje _heapset
(například Windows 98), funkce se vrátí _HEAPOK
a nastaví errno
na ENOSYS
hodnotu .
Požadavky
Rutina | Požadovaný hlavičkový soubor | Volitelné záhlaví |
---|---|---|
_heapset |
<malloc.h> | <errno.h> |
Další informace o kompatibilitě naleznete v tématu Kompatibilita v úvodu.
Příklad
// 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