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

时间:2019-08-22 22:01:18

标签: linked-list heap-memory stack-memory

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

1 个答案:

答案 0 :(得分:0)

这个主张实际上是错误的;链表不仅存储在堆栈中,而且经常在运行时堆栈中维护链表:这就是我们获得呼叫跟踪的方式。通过链接到调用堆栈的帧指针的链接列表,可以进行调用跟踪。

链表可以由节点组成,这些节点分别位于不同执行上下文(如线程)的堆栈中。一种操作系统技术是通过在该线程的堆栈上声明一个链接列表节点,然后将其直接放入等待队列中,从而使任务进入等待队列中。