gpt4 book ai didi

c - 缩小指针数组的内存,可能吗?

转载 作者:行者123 更新时间:2023-11-30 21:30:24 25 4
gpt4 key购买 nike

我很难找到可能的解决方案,因此我决定发布我的问题。我正在用 C 编写一个程序,并且:

  • 我正在生成一个巨大的数组,其中包含许多指向整数的指针,它是动态分配的并在运行时填充。所以之前我不知道会添加哪些指针以及多少。问题是它们只适合其中的许多人,所以我需要以某种方式缩小空间。

是否有任何可用的软件包或工具可以以某种方式对我的条目进行编码或更改表示形式以便节省空间?

另一个问题,我还考虑过用我的信息编写一个文件,然后将其一直保存在内存中还是只是在我再次重新打开该文件时保存?

最佳答案

您似乎正在寻找一个简单的动态数组(即 the advanced data type dynamic array )。应该有很多这方面的实现。您可以简单地从一个小型动态数组开始,然后将新项目推到后面,就像使用 c++ 或 java 中的 vector 一样。一种实现是 GArray 。您将只分配您需要的内存。

如果您必须/想要手动执行此操作,通常的方法是将您分配的数组的容量和大小以及结构中的指针一起存储,并在需要时从 Push_back() 中调用 realloc()更多的空间。通常,您应该将数组的大小增加 1.3 到 1.4 倍,但如果您不期望使用巨大的数组,则增加 2 倍即可。如果你调用remove并且你的大小低于某个阈值(例如capacity/2),你可以使用realloc()再次缩小数组;

关于c - 缩小指针数组的内存,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26166702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com