3 回答
TA贡献1936条经验 获得超7个赞
arr == addr
void * addr = std::malloc(N * sizeof(T));T * arr = ::new (addr) T[N]; // #1
::operator new[](???, addr)???N * sizeof(T)addrarraddraddr
您的示例调用 operator new[](),不是 operator new().分配函数 不构造什么都行。他(她,它)们 分配.
T * p = new T[10];
打电话给 operator new[]()带尺寸参数 10 * sizeof(T) + x,对默认构造函数的十个调用 T,有效 ::new (p + i) T().
operator new[]operator delete[]
最新情况:
T * p = ::new (buf1) T;T * arr = ::new (buf10) T[10];
::operator new(std::size_t, void*)::operator new[](std::size_t, void*)buf1010 * sizeof(T) + yy.
TA贡献1966条经验 获得超4个赞
operator new[] ()std::uninitialized_fill()std::uninitialized_copy()
delete[] arraynewoperator delete[] ()new
- 3 回答
- 0 关注
- 353 浏览
添加回答
举报
