_heapchk

ヒープの一貫性チェックを実行します。

int _heapchk( void );

戻り値

_heapchk は、Malloc.h に定義されている次の整数のマニフェスト定数のいずれかを返します。

  • _HEAPBADBEGIN
    最初のヘッダー情報は、悪かったりが見つかりません。

  • _HEAPBADNODE
    不適切なノードがありましたまたはヒープは傷つきます。

  • _HEAPBADPTR
    ヒープへのポインターが無効です。

  • _HEAPEMPTY
    ヒープを初期化されませんでした。

  • _HEAPOK
    ヒープは、一貫しているようです。

また、エラーが発生した場合、_heapchk は errno を ENOSYS に設定します。

解説

_heapchk 関数ではヒープの最小の一貫性をチェックし、ヒープに関する問題をデバッグします。 オペレーティング システムが _heapchk (たとえば、Windows 98) をサポートする、関数の戻り値 _HEAPOK は ENOSYSに errno を設定します。

必要条件

ルーチン

必須ヘッダー

オプション ヘッダー

_heapchk

<malloc.h>

<errno.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

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

同等の .NET Framework 関数

使用できません。標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

メモリ割り当て

_heapadd

_heapmin

_heapset

_heapwalk