Implementation of a dynamic Storage Allocator in C