动态分配的内存如何在C中保持跟踪

动态分配的内存如何在C中保持跟踪,第1张

概述参见英文答案 > How does free know how much to free?                                    10个 我们使用malloc()在C中动态分配内存,并且我们收到指向堆中位置的指针. 现在我们使用free()来释放内存,传递与argumnet相同的指针值. 现在的问题是free()如何知道取消分配多少…考虑到我们总是可以调整mallo 参见英文答案 > How does free know how much to free?10个
我们使用malloc()在C中动态分配内存,并且我们收到指向堆中位置的指针.
现在我们使用free()来释放内存,传递与argumnet相同的指针值.

现在的问题是free()如何知道取消分配多少…考虑到我们总是可以调整malloc()分配的内存块的事实.

这里有什么与哈希表相关的东西吗?

解决方法 最初的技术是分配一个稍大的块并在开头存储大小,这是应用程序没有看到的部分.额外的空间包含一个大小,并且可能链接到将空闲块连接在一起以便重用.

但是,这些技巧存在某些问题,例如缓存和内存管理行为不佳.在块中使用内存往往会不必要地对页面进行分页,并且还会创建脏页面,这使得共享和写入时复制变得复杂.

所以更先进的技术是保持一个单独的目录.还开发了外来方法,其中存储器区域使用相同的两个功率大小.

一般来说,答案是:分配一个单独的数据结构来保持状态.

总结

以上是内存溢出为你收集整理的动态分配的内存如何在C中保持跟踪全部内容,希望文章能够帮你解决动态分配的内存如何在C中保持跟踪所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1237378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存