Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uruchamia kontrole spójności na stercie.
Składnia
int _heapchk( void );
Wartość zwracana
_heapchk Zwraca jedną z następujących stałych manifestu liczby całkowitej zdefiniowanych w pliku Malloc.h.
| Wartość zwracana | Stan |
|---|---|
_HEAPBADBEGIN |
Początkowe informacje nagłówka są nieprawidłowe lub nie można ich znaleźć. |
_HEAPBADNODE |
Znaleziono zły węzeł lub sterta jest uszkodzona. |
_HEAPBADPTR |
Wskaźnik do sterta nie jest prawidłowy. |
_HEAPEMPTY |
Sterta nie została zainicjowana. |
_HEAPOK |
Sterta wydaje się być spójna. |
Ponadto, jeśli wystąpi błąd, _heapchk ustawia wartość errno ENOSYS.
Uwagi
Funkcja _heapchk pomaga debugować problemy związane z stertą, sprawdzając minimalną spójność stert. Jeśli system operacyjny nie obsługuje _heapchk(na przykład Windows 98), funkcja zwraca _HEAPOK i ustawia wartość errno ENOSYS.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
| Procedura | Wymagany nagłówek | Opcjonalny nagłówek |
|---|---|---|
_heapchk |
<malloc.h> | <errno.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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