Jon*_*eet 11
完全和其他地方一样 - 你已经炸掉了堆栈,通常是因为你的回复很糟糕.例如:
public int Foo(int x)
{
return Foo(x + 1);
}
Run Code Online (Sandbox Code Playgroud)
现在这个例子可以通过尾递归进行优化,在这种情况下它将永远运行 - 但是否则(在更一般的情况下,尾递归不可行),这将为每个递归调用推送一个新的堆栈帧到Foo......并且永远不会弹出那些堆栈帧,因为调用永远不会实际返回.
这与垃圾收集无关.