Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menjalankan pemeriksaan konsistensi pada timbunan.
Sintaks
int _heapchk( void );
Nilai hasil
_heapchk mengembalikan salah satu konstanta manifes bilangan bulat berikut yang ditentukan dalam Malloc.h.
| Nilai hasil | Kondisi |
|---|---|
_HEAPBADBEGIN |
Informasi header awal buruk atau tidak dapat ditemukan. |
_HEAPBADNODE |
Simpul buruk telah ditemukan atau timbunan rusak. |
_HEAPBADPTR |
Penunjuk ke dalam tumpukan tidak valid. |
_HEAPEMPTY |
Timbunan belum diinisialisasi. |
_HEAPOK |
Timbunan tampaknya konsisten. |
Selain itu, jika terjadi kesalahan, _heapchk atur errno ke ENOSYS.
Keterangan
Fungsi ini _heapchk membantu men-debug masalah terkait timbunan dengan memeriksa konsistensi minimal timbunan. Jika sistem operasi tidak mendukung _heapchk(misalnya, Windows 98), fungsi mengembalikan _HEAPOK dan mengatur errno ke ENOSYS.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
| Rutin | Header yang diperlukan | Header opsional |
|---|---|---|
_heapchk |
<malloc.h> | <errno.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_heapchk.c
// This program checks the heap for
// consistency and prints an appropriate message.
#include <malloc.h>
#include <stdio.h>
int main( void )
{
int heapstatus;
char *buffer;
// Allocate and deallocate some memory
if( (buffer = (char *)malloc( 100 )) != NULL )
free( buffer );
// Check heap status
heapstatus = _heapchk();
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;
}
}
OK - heap is fine