C动态生长阵列我有一个程序,读取游戏中实体的“原始”列表,我打算制作一个数组,其中包含一个不确定数量实体的索引号(Int),用于处理各种事情。我希望避免使用过多的内存或CPU来保存这些索引.到目前为止,我使用的一个快速而肮脏的解决方案是在主处理函数(本地焦点)中声明具有最大游戏实体大小的数组,并声明另一个整数,以跟踪列表中添加了多少。这并不令人满意,因为每个列表都有3000多个数组,这不是很多,但感觉很浪费,因为我可能会为6-7个列表使用这个解决方案来处理不同的函数。我还没有找到任何C(不是C+或C#)特定的解决方案来实现这一点。我可以使用指针,但我有点害怕使用它们(除非这是唯一可能的方法)。数组不离开本地函数作用域(它们将传递给函数,然后丢弃),以防发生变化。如果指针是唯一的解决方案,我如何跟踪它们以避免泄漏?
3 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
链接列表。您可以使用链接列表来创建一个动态增长的数组。但你做不到 array[100]
不用走过去 1-99
第一。对你来说也不太方便。 大阵列。只需创建一个拥有足够空间的数组即可。 调整数组大小。一旦知道数组的大小和/或每次空间用完时重新创建数组,并将所有数据复制到新数组。 链表数组组合。只需使用一个大小固定的数组,一旦空间用完,就创建一个新数组并链接到该数组(跟踪数组和结构中下一个数组的链接将是明智的)。
- 3 回答
- 0 关注
- 388 浏览
添加回答
举报
0/150
提交
取消