Std::bad_alloc,但最终工作

std::bad_alloc but works in the end

本文关键字:工作 alloc bad Std      更新时间:2023-10-16

我在调试模式下开发VS 2008 Express Edition的应用程序。当实例化我所创建的类的新指针时,我得到一个std::bad_alloc异常。由于它处于调试模式,我点击已经出现的窗口中的'break',我尝试通过按下'play'按钮来恢复程序。

接下来发生的事情是相当出乎意料的:程序正常工作。

当我使用Matrix* vec = new Matrix[maxItr + 1];实例化Matrix对象(我的类)的数组时,会发生此错误(我已经检查过并且maxItr在错误引发时等于5)。该类有几个整型成员和一个指向char类型的指针。这个指针没有在默认构造函数中分配(它甚至被设置为0),所以我消除了这个错误的原因。(不需要特别大的内存块)。

有人对此有什么见解吗?

你的类的构造函数有一个new在里面吗?或者是隐藏在另一个类(如vector)中的new ?如果是这样,可能您正在获得对象向量的分配,但其中包含的一个或多个对象是畸形的。