【发布时间】:2011-02-16 19:20:14
【问题描述】:
谁能告诉我是否允许结构的链表比等效的列表更大(假设列表使用加倍策略来增加其内部数组的大小)。
所以给定一个 40 字节的结构(我知道 16 字节和结构的东西,但我在这里使用一些遗留代码,将结构更改为类并不是一个简单的选择)我的理解就是每次调整列表的内部数组大小时,都需要为新数组分配内存(new_array_size * 40)。因此,对于一个非常大的数组,您最终会得到一个内存不足异常,因为没有足够大的连续空间来创建这个新数组。我知道链表需要为每个元素(节点)提供更多空间,因为它需要保存指向列表中项目的正向和反向指针,但我的问题是这是否意味着要添加一个额外的元素,您只需要一个连续的内存槽(40 + the_space_needed_for_the_pointers)。换句话说,链表不会因为必须分配一个巨大的新连续内存部分来扩展而受到影响。
【问题讨论】:
标签: .net memory list linked-list