2

我目前正在测试一个必须在 Application Verifier 6.3 中为 64 位系统打开大文件的应用程序。我的应用程序必须能够分配大约 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;
}
[...]

我将应用程序添加到应用程序验证程序并启用所有基本测试:

在此处输入图像描述

现在,奇怪的是,new char[fileLength]总是返回NULL一个 97 MB 大的文件!这显然导致了后来的访问违规。所以现在我比以前遇到了更多的问题......

应用程序验证程序是否默认应用一些堆分配限制?我可以以某种方式禁用它们吗?

4

0 回答 0