Sdílet prostřednictvím


_heapchk

Spustí kontroly konzistence v haldě.

Syntaxe

int _heapchk( void );

Vrácená hodnota

_heapchk vrátí jednu z následujících celočíselné konstanty manifestu definované v Malloc.h.

Vrácená hodnota Podmínka
_HEAPBADBEGIN Počáteční informace v hlavičce jsou chybné nebo se nedají najít.
_HEAPBADNODE Byl nalezen chybný uzel nebo je poškozena halda.
_HEAPBADPTR Ukazatel na haldu není platný.
_HEAPEMPTY Halda nebyla inicializována.
_HEAPOK Halda je zřejmě konzistentní.

Kromě toho, pokud dojde k chybě, _heapchk nastaví errno na ENOSYS.

Poznámky

Funkce _heapchk pomáhá ladit problémy související s haldou tím, že kontroluje minimální konzistenci haldy. Pokud operační systém nepodporuje _heapchk(například Windows 98), funkce se vrátí _HEAPOK a nastaví errno na ENOSYShodnotu .

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor Volitelné záhlaví
_heapchk <malloc.h> <errno.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

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

Viz také

Přidělení paměti
_heapadd
_heapmin
_heapset
_heapwalk