分配动态数组时的主要恐慌42

时间:2009-08-20 19:05:32

标签: c++ symbian

到目前为止,我认为仅当我尝试访问数组边界之外的数据时才会发生主要恐慌42。感谢你们的一些很好的反馈,我能够解决我的其他问题。但是,现在发生的事情是,在尝试按如下方式分配char数组时,我得到了这个恐慌

unsigned char *buf = new unsigned char[5000];

任何人都知道可能会发生什么?它工作正常一次,但第二次程序来自这条线,它崩溃了。有没有什么好的策略可以解决这个错误?

再次感谢!

1 个答案:

答案 0 :(得分:0)

堆损坏是USER 42恐慌的可能原因。例如,写入超出其他已分配单元格的边界或使用陈旧指针到已释放的内存。

首先查看在该紧急点之前发生的allocs / frees / memory写入。通常你不必走很远就能找到腐败。