虽然在C/C++中有很多不同的复杂实现方法来实现malloc
/ free
,但我正在寻找一种非常简单并且(特别是)小型的实现方法,它可以在固定大小的缓冲区上运行,并支持realloc
。线程安全等功能不需要,我的对象小而且大小变化不大。您能推荐任何实现吗?
编辑:
我将在接收器的通信缓冲区中使用该实现来传输具有可变大小(接收器未知)的对象。分配的对象寿命不长,但可能同时使用几个对象。
由于每个人都建议使用标准的malloc函数,因此我应该重新表达我的问题。我需要在缓冲区上实现“最简单”的malloc函数,以便我可以开始根据自己的需要进行优化。也许最初的问题不太清楚,因为我不是在寻找经过优化的malloc函数,我只想要一个轻量级的实现。我不想从glibc-malloc函数开始扩展,而是希望使用一个轻量级的实现。
malloc
函数。如果这是因为你在某种环境下工作,你的编译器没有提供malloc
函数(例如嵌入式软件),你需要描述这个环境,以便回答对你有用。目前,除了Martin York的建议使用编译器捆绑的malloc
函数外,这个问题无法令人满意地回答。 - David Thornleyrealloc
(如果缓冲区中有足够的空间,则不返回NULL)是可以接受的。 - Thomas