我的问题是:为什么无限递归崩溃,而不是无限循环?他们都感觉像正常的永久迭代器,但一个崩溃,而另一个没有。我正在寻找硬件/低级别的响应。在用Python对木星进行实验时,我通常会遇到堆栈溢出错误。此外,当我指的是低级响应时,我指的是计算机硬件(RAM,CPU)中所发生的导致无限递归崩溃的情况,而不是无限迭代。
发布于 2022-05-08 16:28:24
由于无限递归不断地将递归调用存储在堆栈中(这是应用程序保存的内存之一),所以它最终将完全填充堆栈,因此您将得到典型的堆栈溢出错误。
在无限循环中,您不存储任何东西,并且经常只更新变量和类似的东西,这样的变量不会占用比这些变量更多的内存,所以什么都不会中断。但是,如果在循环中添加内存中的内容,比如向循环中的列表添加元素,则可能会出现无限循环中断。
https://stackoverflow.com/questions/72163003
复制相似问题