我有一个程序使用大量内存进行计算。不会太多,我猜。当然,所有 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
——现在需要找出问题所在,不想不了解就离开这个问题。感谢帖子的风格更正!