减少Visual Studio内存限制

时间:2011-03-22 11:11:21

标签: c++ visual-studio-2010

我有一个项目,我想触发一些内存异常,看看它们在哪里发生而不必加载2GB文件。我该怎么做?

2 个答案:

答案 0 :(得分:1)

只需运行一个快速循环,分配内存块直到用尽。

void* p;
do {
  p = malloc (1024 * 1024);
} while (p != NULL);

答案 1 :(得分:0)

我假设你谈到了32位Windows的2GB限制。如果你这样做 - 这可能会成功:

预先预先分配一些内存以产生一些基本负载,例如。

struct memwaste
{
  char* m_ptr;
  memwaste() : m_ptr(new char[1024*1024*104]) {} //waste 1 gb
  ~memwaste() { delete[] m_ptr }
}x;

将此结构添加到您的代码中,它“浪费”一些内存(也称为baseload)。现在你可以运行你的程序了。最终会遇到分配内存的问题。

memwast的基本负载必须根据您的需要进行调整 - 这取决于您要检查内存分配错误的位置。