heapcheckfree

提供: RAD Studio
移動先: 案内検索

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

+