C Custom Memory Allocator