【发布时间】:2013-05-17 17:53:33
【问题描述】:
有什么原因吗:
new X[n];
与以下相比会消耗更多内存:
X* x = reinterpret_cast<X*>(malloc(n * sizeof(X))
for(X* p = x; p != x + n; ++p)
new (p) X();
对于多个 n 的多个副本?
我看到了这方面的证据。
【问题讨论】:
-
重载 `X::operator new' ??
-
有什么证据。你是如何测量的?
-
std::vector完全符合您的建议。实际上,您应该将 array-new视为一种反模式。
标签: c++ memory memory-management malloc