固定大小缓冲区的malloc实现

我需要一个使用一个大的固定大小缓冲区的通用malloc实现。 与SQLite的“ Zero-malloc内存分配器 ”类似的东西。 你知道任何这样的实现吗? 它应该重量轻,便于携带,可用于嵌入式应用。

提前致谢。

两个建议:

  1. 如果你需要一些生产质量和经过充分测试,只需借用SQLite的分配器。 SQLite的源代码编写得非常好,文档化,经过严格测试,并且具有非常宽松的开源许可证。
  2. 如果您需要一些小而简单的东西,无论是学习还是在嵌入式环境中使用,请考虑这个实现 [无耻的插件!] – 只有350 LOC的注释C代码。

SQLite源代码是免费提供的。 如果您喜欢特定的实现,为什么不使用它呢?

大多数当前的malloc实现通过划分从OS获得的大量内存来工作。 如果该块用完, malloc向OS请求一个新的大块。

您可以将自己的实现基于现有的malloc实现(例如glibc实现),而不是从OS获取块,而是使用单个静态缓冲区。 当用完时, malloc将开始失败,就像操作系统无法提供任何新块一样。