堆栈分配中的C ++ std :: bad_alloc?

时间:2012-11-01 15:46:32

标签: 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

1 个答案:

答案 0 :(得分:2)

不,此异常仅从operator new/new[]抛出。

即使您不在任何地方使用operator new/new[],也可能发生这种情况 - 原因 - STL容器确实使用它。