_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 ENOSYS
ayarlarerrno
.
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