为什么链表存储在堆中而不是栈中?

Why are linked lists stored in the heap and not the stack?

我一直被教导在堆中使用链表,但我不明白为什么你不能只在堆栈中使用它?

该命题实际上是错误的;链表不仅存储在堆栈中,而且通常有一个链表作为 运行 时间堆栈的一部分进行维护:这就是我们能够获得调用跟踪的方式。由于帧指针的链接列表,通过调用堆栈链接,调用跟踪是可能的。

链表可以由节点组成,每个节点位于不同执行上下文(如线程)的堆栈中。有一种操作系统技术,通过在该线程的堆栈上声明一个链表节点并将其直接排入等待队列,使任务在等待队列中休眠。