我们在代码中进行了一项测试,试图解决堆栈溢出错误(在 OpenCV 的旧修改版本中)。 AFAIK,如果确实存在堆栈溢出,则测试应该是 SEGV。
我们的一位用户由于抛出异常 std::bad_alloc
而导致测试失败。听起来这个异常只在堆分配时抛出(新运算符的结果 - http://www.cplusplus.com/reference/std/new/bad_alloc/)。
这会不会是因为大量的堆栈分配而发生的?
错误报告是:http://code.google.com/p/modpagespeed/issues/detail?id=528
最佳答案
不,此异常仅由 operator new/new[]
抛出。
即使您不在任何地方使用 operator new/new[]
也可能发生 - 原因 - STL 容器确实使用它。
关于来自堆栈分配的 C++ std::bad_alloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180603/