修改堆分配函数