heapcheckfree
Nach oben zu alloc.h - Index
Header-Datei
alloc.h
Kategorie
Speicherroutinen
Prototyp
int heapcheckfree(unsigned int fillvalue);
Beschreibung
Überprüft, ob die freien Blöcke auf dem Heap-Speicher einen konstanten Wert enthalten.
Rückgabewert
Wenn ein Fehler gefunden wird, ist der Rückgabewert kleiner als 0, andernfalls ist er größer als Null. Im Folgenden sind die Rückgabewerte und deren Bedeutung beschrieben:
_BADVALUE |
Es wurde ein anderer als der mit fillvalue angegebene Wert gefunden. |
_HEAPCORRUPT |
Der Heap ist beschädigt. |
_HEAPEMPTY |
Es ist kein Heap-Speicher vorhanden. |
_HEAPOK |
Der Heap ist korrekt. |
Beispiel
#include <stdio.h> #include <alloc.h> #include <mem.h> #define NUM_PTRS 10 #define NUM_BYTES 16 int main(void) { char *array[ NUM_PTRS ]; int i; int res; for( i = 0; i < NUM_PTRS; i++ ) array[ i ] = (char *) malloc( NUM_BYTES ); for( i = 0; i < NUM_PTRS; i += 2 ) free( array[ i ] ); if( heapfillfree( 1 ) < 0 ) { printf( "Heap corrupted.\n" ); return 1; } for( i = 1; i < NUM_PTRS; i += 2 ) memset( array[ i ], 0, NUM_BYTES ); res = heapcheckfree( 1 ); if( res < 0 ) switch( res ) { case _HEAPCORRUPT: printf( "Heap corrupted.\n" ); return 1; case _BADVALUE: printf( "Bad value in free space.\n" ); return 1; default: printf( "Unknown error.\n" ); return 1; } printf( "Test successful.\n" ); return 0; }
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |