heapcheckfree
alloc.h:インデックス への移動
ヘッダーファイル
alloc.h
カテゴリ
メモリルーチン
プロトタイプ
int heapcheckfree(unsigned int fillvalue);
説明
ヒープ上の空きブロックに定数値があるかどうかをチェックします。
戻り値
エラーの場合は 0 より小さな値,成功の場合は 0 より大きな値を返します。戻り値の意味は次のとおりです。
_BADVALUE |
設定値以外の値が検索されました。 |
_HEAPCORRUPT |
ヒープが破損しています。 |
_HEAPEMPTY |
ヒープが存在しません。 |
_HEAPOK |
ヒープは正常です。 |
コード例
#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; }
移植性
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |