我们的代码中有一个测试试图发现堆栈溢出错误(在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
答案 0 :(得分:2)
不,此异常仅从operator new/new[]
抛出。
即使您不在任何地方使用operator new/new[]
,也可能发生这种情况 - 原因 - STL容器确实使用它。