Memory allocator that allocates in blocks. More...
#include <block_allocator.h>
Public Member Functions | |
Construction | |
BlockAllocator () | |
Block Allocator constructor. More... | |
Operations | |
void * | allocate (int size) |
Allocate memory (See note on this class for the allocation method) More... | |
void | free () |
Free the allocated memory. More... | |
Memory allocator that allocates in blocks.
This allocator will never free any memory until free() is called or the allocator object is destroyed. If any objects have been new'ed using BlockAllocated they have to be delete'ed before free() is called, otherwise the destructors of the objects will not get called. Same rules apply to the new_obj and delete_obj template functions.
The allocator allocates memory from the heap in blocks. Each time the allocated block is exhausted, the allocator will double the block size and allocate more memory.