c++ - 为什么堆栈溢出在 Visual C++ 中没有抛出错误?

标签 c++ stack-overflow

在 Microsoft Visual C++ 2010 中,我创建了一个故意导致堆栈溢出的程序。当我使用“开始调试”运行程序时,发生堆栈溢出时会抛出错误。当我使用“不调试启动”运行它时,不会抛出任何错误,程序只是静默终止,就好像它已成功完成一样。有人可以向我解释发生了什么事吗?还有其他编译器不会在堆栈溢出时抛出错误吗?

(我认为这是提出有关堆栈溢出问题的正确位置。)

最佳答案

C++ 不会像托管环境那样牵着你的手。堆栈溢出意味着未定义的行为。

关于c++ - 为什么堆栈溢出在 Visual C++ 中没有抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3409926/

相关文章:

Java 双缓冲区使用更新方法重写会引发堆栈溢出

c++ - 二叉树的智能指针

c++ - 编译错误,据我所知不是错字

c++ - 在 Visual Studio 中监视调用堆栈大小

javascript - 超出 Magnific Popup 和 Bootstrap 3 模态调用堆栈

stack - 程序栈真的溢出了吗?

c++ - typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;

c++ - 无法从 'std::string' 转换为 'LPSTR'

c++ - 比较两个 std::vectors/arrays 或者通常比较两个 STL 容器

f# - Project Euler #14 尝试因 StackOverflowException 而失败