【发布时间】:2015-03-28 21:16:39
【问题描述】:
我已经找了几天了,没有任何运气。
堆内存碎片是在微控制器/Arduino 中大量使用 malloc() 和 free() 的结果。
如果使用它们是不可避免的,我如何不时对堆进行碎片整理以确保下一次 malloc() 调用会找到要分配的连续内存?
【问题讨论】:
-
您可以修改 malloc 以便它返回块的句柄,然后在每次需要访问块时将句柄转换为实际指针的函数。这样,您可以滚动自己的碎片整理,定期重新排列内存并更新句柄表。
-
有趣,你有示例代码吗?或者你能指出我的方向吗?
标签: arduino microcontroller avr avr-gcc atmel