Udostępnij za pośrednictwem


_heapset

Sprawdza stertę dla minimalnej spójności i ustawia wolne wpisy na określoną wartość.

Ważne

Ta funkcja jest przestarzała. Począwszy od programu Visual Studio 2015, nie jest on dostępny w CRT.

Składnia

int _heapset(
   unsigned int fill
);

Parametry

fill
Znak wypełnienia.

Wartość zwracana

_heapset Zwraca jedną z następujących stałych manifestu liczby całkowitej zdefiniowanych w pliku Malloc.h.

Wartość Opis
_HEAPBADBEGIN Początkowe informacje nagłówka są nieprawidłowe lub nie znaleziono.
_HEAPBADNODE Sterta uszkodzona lub zły węzeł znaleziono.
_HEAPEMPTY Sterta nie została zainicjowana.
_HEAPOK Sterta wydaje się być spójna.

Ponadto, jeśli wystąpi błąd, _heapset ustawia wartość errnoENOSYS.

Uwagi

Funkcja _heapset pokazuje wolne lokalizacje pamięci lub węzły, które zostały przypadkowo zastąpione.

_heapset sprawdza minimalną spójność na stercie, a następnie ustawia każdy bajt wolnych wpisów sterta na fill wartość. Ta znana wartość pokazuje, które lokalizacje pamięci sterta zawierają wolne węzły i które zawierają dane, które zostały przypadkowo zapisane w zwolnionej pamięci. Jeśli system operacyjny nie obsługuje _heapset(na przykład Windows 98), funkcja zwraca _HEAPOK i ustawia wartość errnoENOSYS.

Wymagania

Procedura Wymagany nagłówek Opcjonalny nagłówek
_heapset <malloc.h> <errno.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność w temacie Wprowadzenie.

Przykład

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

Zobacz też

Alokacja pamięci
_heapadd
_heapchk
_heapmin
_heapwalk