_heapset
Memeriksa timbunan untuk konsistensi minimal dan mengatur entri gratis ke nilai yang ditentukan.
Penting
Fungsi ini usang. Dimulai di Visual Studio 2015, tidak tersedia di CRT.
Sintaks
int _heapset(
unsigned int fill
);
Parameter
fill
Isi karakter.
Nilai hasil
_heapset
mengembalikan salah satu konstanta manifes bilangan bulat berikut yang ditentukan dalam Malloc.h.
Nilai | Deskripsi |
---|---|
_HEAPBADBEGIN |
Informasi header awal tidak valid atau tidak ditemukan. |
_HEAPBADNODE |
Timbunan rusak atau node buruk ditemukan. |
_HEAPEMPTY |
Timbunan tidak diinisialisasi. |
_HEAPOK |
Timbunan tampaknya konsisten. |
Selain itu, jika terjadi kesalahan, _heapset
atur errno
ke ENOSYS
.
Keterangan
Fungsi ini _heapset
menunjukkan lokasi memori gratis atau simpul yang telah ditimpa secara tidak sengaja.
_heapset
memeriksa konsistensi minimal pada tumpukan dan kemudian mengatur setiap byte entri gratis timbunan ke fill
nilai . Nilai yang diketahui ini menunjukkan lokasi memori tumpukan mana yang berisi simpul gratis dan yang berisi data yang secara tidak sengaja ditulis ke memori yang dibeberkan. Jika sistem operasi tidak mendukung _heapset
(misalnya, Windows 98), fungsi mengembalikan _HEAPOK
dan mengatur errno
ke ENOSYS
.
Persyaratan
Rutin | Header yang diperlukan | Header opsional |
---|---|---|
_heapset |
<malloc.h> | <errno.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas dalam Pengenalan.
Contoh
// 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