Aracılığıyla paylaş


_heapset

En düşük tutarlılık için yığınları denetler ve boş girişleri belirtilen bir değere ayarlar.

Önemli

Bu işlev kullanımdan kaldırıldı. Visual Studio 2015'te başlayarak, CRT'de kullanılamaz.

Sözdizimi

int _heapset(
   unsigned int fill
);

Parametreler

fill
Dolgu karakteri.

Dönüş değeri

_heapset Malloc.h dosyasında tanımlanan aşağıdaki tamsayı bildirim sabitlerinden birini döndürür.

Value Açıklama
_HEAPBADBEGIN İlk üst bilgi bilgileri geçersiz veya bulunamadı.
_HEAPBADNODE Yığın hasar görmüş veya bozuk düğüm bulundu.
_HEAPEMPTY Yığın başlatılmadı.
_HEAPOK Yığın tutarlı görünüyor.

Buna ek olarak, bir hata oluşursa olarak _heapset ayarlar errno ENOSYS.

Açıklamalar

işlevi, _heapset yanlışlıkla üzerine yazılmış boş bellek konumlarını veya düğümlerini gösterir.

_heapset yığında en düşük tutarlılığı denetler ve ardından yığının boş girişlerinin her baytını değere fill ayarlar. Bu bilinen değer, yığının hangi bellek konumlarının boş düğümler içerdiğini ve boş belleğe yanlışlıkla yazılmış verileri içerdiğini gösterir. İşletim sistemi desteklemiyorsa _heapset(örneğin, Windows 98), işlevi döndürür _HEAPOK ve olarak ENOSYSayarlarerrno.

Gereksinimler

Yordam Gerekli başlık İsteğe bağlı üst bilgi
_heapset <malloc.h> <errno.h>

Daha fazla uyumluluk bilgisi için Giriş'teki Uyumluluk bölümüne bakın.

Örnek

// 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

Ayrıca bkz.

Bellek ayırma
_heapadd
_heapchk
_heapmin
_heapwalk