c - 微型内存管理器

标签 c memory memory-management

我有一大块内存,让我们说'NN'MB。我想要一个只从这个内存中分配的自定义内存管理器。内存管理器应该能够使用已经可用的 block 进行分配和释放。如果它也能处理碎片就太好了。

已编辑:我正在寻找一些 C 语言的开源软件,或者是否有一些 API,例如 malloc 和 free。

最佳答案

能够“处理”碎片是一个相当苛刻的要求。如果您的意思是管理器必须能够对内存进行碎片整理,这意味着它不能具有标准的 C malloc() API。您需要一个间接 API,其中内存分配不是由实际的可直接取消引用的地址引用,而是由更抽象的东西引用。

这是因为您的内存管理器必须能够在碎片整理期间移动分配的内存块,如果应用程序将直接绝对指针保存到分配的内存中,它就不能这样做。

当然,强制应用程序间接使用内存意味着许多常见的 C 习惯用法和 API 会被打破,因为自由使用指针的期望在 C 中很常见。

关于c - 微型内存管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728895/

相关文章:

ios - 浪费了太多内存,同时循环了15K次:OS-X应用程序

在可执行文件中找不到 C++ 动态链接库

c - GCC 更改为小于或等于

java - 对java中测试对象内存消耗的实现结果感到困惑

c++ - 尽管有 32 GB 内存,但无法分配 3 GB 浮点指针

c++ - C++ 中的垃圾回收/析构函数

_start() 的对应物

c - 关于 C 中数组和普通值的指针用法

c - 如何读取c中的原始内存

c++ - C++类构造函数中的内存泄漏