来自堆栈分配的 C++ std::bad_alloc?

标签 c++ opencv stack-overflow std mod-pagespeed

我们在代码中进行了一项测试,试图解决堆栈溢出错误(在 OpenCV 的旧修改版本中)。 AFAIK,如果确实存在堆栈溢出,则测试应该是 SEGV。

我们的一位用户由于抛出异常 std::bad_alloc 而导致测试失败。听起来这个异常只在堆分配时抛出(新运算符的结果 - http://www.cplusplus.com/reference/std/new/bad_alloc/)。

这会不会是因为大量的堆栈分配而发生的?

作为引用,测试是:http://code.google.com/p/modpagespeed/source/browse/trunk/src/net/instaweb/rewriter/image_test.cc#826

错误报告是: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/

相关文章:

c++ - C++ 中堆栈溢出和段错误的危险

java - 线程退出并出现未捕获的异常 : NO stack trace

C++0x 右值引用和临时对象

c++ - C++03和C++11在c_str函数规范上的区别

c++ 如何使两条语句的 sql 与 OLEDB 一起工作?

c++ - 使用opencv在qt中加载轴相机

c++ - 使用 std::function 中函数的类型来声明该类型的多个函数

c++ - CUDA - 将 RGB 图像转换为灰度

c++ - IP 摄像机和 OPENCV

java - lucene 3.5.0 索引时出现堆栈溢出错误