1

某些语言或平台是否没有固定大小的堆栈,因此不容易溢出?我记得在 UNIX 上使用 C,堆栈很难溢出,而在 Win 3.1 的日子里,堆栈很容易溢出。

4

3 回答 3

2

如果“堆栈”是指任何旧堆栈,那么大多数语言都是如此——Java 有一个仅受内存限制的堆栈类。您更可能是指调用堆栈,在这种情况下,我能想到的最大示例是Stackless Python,据我了解,它使用纯 Python 内存限制堆栈(如 Java)作为 Python 代码的调用堆栈,而不是而不是使用 C 的调用堆栈。

于 2009-05-29T04:58:20.663 回答
1

这是一个实践与理论的问题。lisp 解释器的堆栈仅受可用内存的限制

在实现尾递归的方案和其他语言中,尾递归函数将具有无限堆栈

于 2009-05-29T04:57:51.507 回答
0

Mac 系统 6、7 和 8 的调用堆栈可以不受人为限制地增长。

它也没有保证检测堆栈 - 堆冲突的方法,并且可能会让你陷入各种麻烦......

于 2009-05-29T13:28:39.643 回答