現在、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 はデフォルトでいくつかのヒープ割り当て制限を適用しますか? どうにかしてそれらを無効にすることはできますか?