首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >顺序内存分配

顺序内存分配
EN

Stack Overflow用户
提问于 2015-08-02 08:02:10
回答 1查看 2.4K关注 0票数 1

我正在计划一个在内存中分配大量变量的应用程序。与另一个“常规”应用程序不同,我希望将此内存分配到4096字节的特定内存块中。我分配的vars必须按顺序放置在内存中。一个接一个,为了填满整个分配的内存。

例如,我在内存中分配一个区域(4096字节),这个区域可以供我进一步使用。从现在开始,每当我的应用程序在内存中创建一个新变量(可能是在使用malloc的“正则”应用程序中创建的)时,这个变量将被放置在内存区域中的空闲空间中。

这种顺序内存分配类似于数组分配的工作方式。但是,在我的例子中,我需要一个能够包含许多类型数据(字符串、字节、int、.)的数组。

一个可能的解决方案是通过指针算法来实现这一点。我想避免这种方法,这可能会在我的应用程序中插入很多错误。

也许以前有人解决过这个问题?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-08-02 08:15:35

malloc()绝不保证后续分配的块位于顺序内存地址上。更糟糕的是,大多数实现在分配的块之前和/或之后使用少量字节进行“内务管理”。这意味着,即使你幸运的是地址是连续的,块之间也会有很小的差距。因此,实际分配的块要稍微大一点,以便为那些“内务”字节腾出空间。

正如您所建议的,您需要自己编写一些代码,并使用malloc()realloc()、.您可以在这些函数中隐藏所有的逻辑,并且不应该使使用这些函数的应用程序代码比使用malloc()更复杂,如果它是您想要的话。

重要的问题:为什么你需要这些块相邻?那释放街区呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31769793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档