meta-treedb can implement malloc functionality, and much more!
Need a heap that allocates from a fixed size chunk of memory? No problem.
But where treedb comes into its own is when it comes to allocating from a mmap()ed disk file - the memory becomes persistent.
If you follow the tests/examples, you too can store dictionaries, trees, lists or whatever you can think of in disk-based memory, just an open() and mmap() away.
Meta-treedb comes with an AVL tree, doubly-linked-list...