稍微重构下
允许定制内存分配器