How would I handle memory fragmentation in this implementation of an Arena Allocator. If I do not need a piece of memory any more, is there a way to free it and possible use it for something else.
But imagine creating a readonly tree, working with that tree, and then disposing of the tree. This is where a arena allocator shines. It removes fragmentation almost entirely from the main allocator.