c - 链表存放在哪个内存区域

标签 c linked-list

当我们创建一个链表时,它存储在内存的哪个区域堆栈或堆? 假设我们要创建一个包含 10 个节点的单链表。那么所有的节点是存放在栈还是堆中还是可以存放在堆或栈中的任意一个中呢?

最佳答案

大多数数据结构都是为了有效地利用内存。如果您创建一个带有堆栈变量的链表,它将提供预期的结果,但这并不意味着内存得到了正确的利用。假设堆有可​​能(1000)个大小为 10byes 的小块,并且没有超过 20 字节的争议内存。在这种情况下,用户想要分配 100 字节的内存,但 100 字节没有争议内存。在这种情况下,用户可以选择链表数据结构来分配10字节内存10次。链表提供了管理多个小块(称为节点)的机制。

关于c - 链表存放在哪个内存区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25179237/

相关文章:

c - 尝试访问结构中的空指针时出现段错误

c - 为什么 malloc(1) 给出了不止一个页面大小?

c++ - 在 Mac OS 上使用 GCC 为 MS-DOS (DOSBox) 编译 C 程序

java - 从文件读取时如何将一行保存到链接列表中并将下一行保存到另一个列表中

java - 如何将二维数组中的值复制到双向链表

c - C 中的另一个反转字符数组

c - 将参数从 C 传递给汇编?

java - k 反转链表

我可以不断地malloc内存而不释放内存吗?

c - 链表段错误