35    void *(*alloc)(
struct _Pool *pool);
 
   37    void (*free)(
struct _Pool *pool, 
void *ptr);
 
 
struct _MemoryBlock * next
void memory_pool_destroy(MemoryPool *pool)
MemoryPool * memory_pool_new(size_t item_size, size_t block_size)
struct _MemoryPtrBlock * next
This memory pool allocates blocks of memory and grows automatically.
Blocks of memory are stored in a singly-linked list.
Freed pointers are stored in blocks holding addresses.
Allocate groups of equal-sized chunks of memory.