1

我正在尝试更多地了解堆栈溢出,我不断得到关于它是什么的描述,但我想了解它的原因,希望你能提供帮助

4

2 回答 2

4

在堆栈上声明一个包含太多元素的数组也可以:

int tmp[999999999];
...
于 2013-05-22T11:20:14.893 回答
0

一个例子是递归。C++ 没有尾调用优化,因此有时在函数式语言(例如 Erlang 或 Haskell)中运行良好的算法可能会导致 C++ 中的堆栈溢出。

UPD。尽管标准不能保证,但似乎大多数现代编译器实现都支持 TCO。好吧,您仍然可以通过在其中声明任何局部变量来使用足够深的递归函数来达到堆栈溢出。

于 2013-05-22T11:18:38.380 回答