An implementation of malloc(), realloc() and free()