std :: bad_alloc但最后工作

时间:2011-07-15 04:11:46

标签: c++ visual-studio-2008 memory-management

我正在调试模式下在VS 2008 Express Edition上开发应用程序。在实例化我创建的类的新指针时,我得到一个std :: bad_alloc异常。由于它处于调试模式,我在出现的窗口中单击“break”,然后按“播放”按钮尝试恢复程序。

接下来发生的事情是意料之外的:程序可以正常工作。

当我使用Matrix实例化Matrix* vec = new Matrix[maxItr + 1];个对象(我的类)数组时会发生此错误(我已经检查过,当{1}}错误被提升时,maxItr等于5 )。这个类有一些整数成员和一个指向char的指针。此指针未在默认构造函数中分配(甚至设置为0),因此我将此消除作为错误原因。 (不要求非常大的内存块。)

有没有人对此有所了解?

1 个答案:

答案 0 :(得分:0)

班级的构造函数中是否包含new?或者可能是new被埋在另一个类中,例如向量?如果是这样,也许你正在获得对象向量的分配,但其中包含的一个或多个对象格式不正确。