2

現在、64 ビット システム用の Application Verifier 6.3 で大きなファイルを開く必要があるアプリケーションをテストしています。私のアプリケーションは、以前はデバッグおよびリリース モードでうまく機能していた約 100 ~ 200 MB のメモリを割り当てることができる必要があります。

これは、メモリの割り当てに使用するコードです。

[...]
char* fileStream;
try
{
   fileStream = new char[fileLength]; // The fileLength is usually about 100 000 000 and 200 000 000
}
catch (std::bad_alloc& ba)
{
   MessageBox(NULL, "Failed to allocate enough memory for the required operation", "Not enough memory", MB_ICONERROR | MB_OK);
   return;
}
[...]

アプリケーションを Application Verifier に追加し、すべての基本テストを有効にしました。

ここに画像の説明を入力

奇妙なことに、97 MB のファイルに対してnew char[fileLength]常に返されます。NULLこれは後で明らかにアクセス違反を引き起こしました。だから今は以前よりも多くの問題を抱えています...

Application Verifier はデフォルトでいくつかのヒープ割り当て制限を適用しますか? どうにかしてそれらを無効にすることはできますか?

4

0 に答える 0