Bagikan melalui


_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

Baca juga

Alokasi memori
_heapadd
_heapchk
_heapmin
_heapwalk