Application Verifier默认限制堆分配?

时间:2015-06-08 21:07:41

标签: c++ memory-management heap application-verifier

我目前正在测试一个必须在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;
}
[...]

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

enter image description here

现在,奇怪的是,new char[fileLength]始终返回NULL,文件大小为97 MB!这显然导致了以后的访问冲突。所以现在我遇到了比以前更多的问题......

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

0 个答案:

没有答案