当我们创建一个链表时,它存储在内存堆栈或堆的哪个区域? 假设我们正在创建一个包含10个节点的单链表。那么所有节点都将存储在堆栈或堆中,还是我们可以将它存储在堆栈或堆栈中的任何一个?
答案 0 :(得分:1)
大多数数据结构都是为了有效的内存利用率。如果使用堆栈变量创建链接列表,它将提供预期的结果,但这并不意味着正确使用内存。假设堆可以(1000)小块大小为10byes&并且没有超过20字节的争议记忆。在这种情况下,用户希望为100字节分配内存,但100字节没有争用内存。在这种情况下,用户可以选择链表数据结构来分配10bytes内存10次。链表提供了管理多个小块(称为节点)的机制。
答案 1 :(得分:0)
链接列表是使用动态内存分配创建的,比如malloc。 动态内存分配是从堆中进行的。堆是一个包含系统中所有可用内存的全局资源。堆被处理为未使用的内存块的链接列表,即所谓的自由列表。