我们使用malloc()在C中动态分配内存,并且我们收到指向堆中位置的指针.
现在我们使用free()来释放内存,传递与argumnet相同的指针值.
现在的问题是free()如何知道取消分配多少…考虑到我们总是可以调整malloc()分配的内存块的事实.
这里有什么与哈希表相关的东西吗?
解决方法 最初的技术是分配一个稍大的块并在开头存储大小,这是应用程序没有看到的部分.额外的空间包含一个大小,并且可能链接到将空闲块连接在一起以便重用.但是,这些技巧存在某些问题,例如缓存和内存管理行为不佳.在块中使用内存往往会不必要地对页面进行分页,并且还会创建脏页面,这使得共享和写入时复制变得复杂.
所以更先进的技术是保持一个单独的目录.还开发了外来方法,其中存储器区域使用相同的两个功率大小.
一般来说,答案是:分配一个单独的数据结构来保持状态.
总结以上是内存溢出为你收集整理的动态分配的内存如何在C中保持跟踪全部内容,希望文章能够帮你解决动态分配的内存如何在C中保持跟踪所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)