有没有办法在特定的内存位置(与系统堆分开)创建一个可用于动态内存分配的堆,但使用 C 库中内置的动态内存分配器。
我正在寻找功能上与此等效的东西:
UserHeap heap(startAddress, size);
void* allocatedMemory1 = heap.Allocate(100); //Allocate 100 bytes.
void* allocatedMemory2 = heap.Allocate(200); //Allocate 200 bytes.
/* ... Do seomthing useful with the memory ... */
heap.Free(allocatedMemory1);
heap.Free(allocatedMemory2);
这个uheap.h似乎有我要找的东西,但这似乎在 newlib 中不存在。我想知道 GCC 或 newlib 是否可能有一些东西。如果不是,我想我最终可能会移植ptmalloc。但是,据我了解,这段代码已经在 C 库中,我不想浪费内存来复制它。
我正在使用带有 newlib(C 库)的 Sourcery Codebench Lite(GCC)。