VS 2010中使用c ++或其他错误的内存限制?

时间:2012-06-16 14:52:30

标签: c++ visual-studio memory

我有一个程序,它使用大量内存进行计算。我猜不是太多了。所有bif数组都存储在堆中。 MS VS 10是我的IDE。 Windows中的任务经理称它需要1548 Kb。我还在写它,并且在某些时候我添加了

bool* mask= new bool [numberOfUnknowns];

numberOfUnknowns约为1600。它是其中一个类的公共方法(不确定它是否重要)。我得到了

  

ProgrammName.exe中0x777615de处的未处理异常:0xC0000005:   访问冲突写入位置0x006a2000。

在这一行。它适用于硬编码

new bool [10];

并以

失败
new bool [1600];

那么,我是否达到了可能的内存大小?或者我应该检查别的东西?因为放

,我不相信我无法获得更多的记忆
double* a = new double [100000];
主要用于检查的

使内存大小更大,但运行时错误位于同一位置 提前谢谢。

加法1:

我在所有其他调用之前调用包含此行的方法,并且它有效。所以,我想,这是内存问题,因为在我班级的其他方法工作期间分配/释放了一些内存。那么,怎么可能呢?我应该发布一些更多的代码,还是有这种情况的通用解决方案/描述?

添加2:对于std::vector - 需要找出现在的问题,不要在不理解的情况下留下这个问题。 感谢帖子的风格修正!

1 个答案:

答案 0 :(得分:1)

使用std::vector。您的错误基本上是访问您不再拥有的内存 - 或者因为您已经释放它或者已经过了结束或类似的东西。您需要使用基于类的解决方案来防止此问题。