某些语言或平台没有固定大小的堆栈,因此不容易溢出?我记得在UNIX上使用C,在Win 3.1的时候堆栈很难溢出,堆栈很容易溢出。
答案 0 :(得分:2)
如果通过“堆栈”表示任何旧堆栈,大多数语言都会这样做 - Java只有内存限制stack类。更可能你的意思是调用堆栈,在这种情况下,我能想到的最大的例子是Stackless Python,根据我的理解,它使用纯python内存限制堆栈(如Java)作为Python的调用堆栈代码,而不是使用C的调用堆栈。
答案 1 :(得分:1)
这是一个实际问题与理论问题。 lisp解释器的堆栈仅受可用内存的限制
在方案和实现尾递归的其他语言中,尾递归函数将具有无限堆栈
答案 2 :(得分:0)
Mac系统6,7和8的调用堆栈可以在没有人为限制的情况下增长。
它也没有保证检测堆栈 - 堆冲突的方法,并且可以让你遇到各种各样的麻烦...