相关疑难解决方法(0)

为什么std :: allocator :: deallocate需要大小?

std::allocator是对底层内存模型的抽象,它包含了调用new和的功能delete. delete虽然不需要大小,但是deallocate() 需要它.

void deallocate(T*p,std :: size_t n);
"参数n必须等于最初生成p的allocate()调用的第一个参数;否则,行为是未定义的."

为什么?

现在我要么在解除分配之前进行额外的计算,要么开始存储我传递给分配的大小.如果我没有使用分配器,我就不必这样做了.

c++ memory-management stl allocator delete-operator

17
推荐指数
1
解决办法
1307
查看次数

标签 统计

allocator ×1

c++ ×1

delete-operator ×1

memory-management ×1

stl ×1