在 Microsoft Visual C++ 2010 中,我创建了一个故意导致堆栈溢出的程序。当我使用“开始调试”运行程序时,发生堆栈溢出时会抛出错误。当我使用“不调试启动”运行它时,不会抛出任何错误,程序只是静默终止,就好像它已成功完成一样。有人可以向我解释发生了什么事吗?还有其他编译器不会在堆栈溢出时抛出错误吗?
(我认为这是提出有关堆栈溢出问题的正确位置。)
最佳答案
C++ 不会像托管环境那样牵着你的手。堆栈溢出意味着未定义的行为。
关于c++ - 为什么堆栈溢出在 Visual C++ 中没有抛出错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3409926/