Bagikan melalui


_heapchk

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

Baca juga

Alokasi memori
_heapadd
_heapmin
_heapset
_heapwalk