【发布时间】:2012-03-15 05:16:12
【问题描述】:
基于这个问题:Variable size type allocation
以下是否有效?
{
// size calculated.
std::auto_ptr<Base> p(new((void*)(new char[size])) Packet());
// Do Stuff
}
其中 Packet 是 POD 结构,其中最后一个成员是数组。这个想法是允许一个动态大小的数组(就像我们多年前在 C 中所做的那样)
struct Packet
{
// STUFF
int data[1];
}
【问题讨论】:
-
我觉得this question 很相关。
-
对不起,如果我在这里误解了一些东西。但是你基本上是在问是否可以使用
delete(而不是delete [])来释放使用new []分配的内存?
标签: c++ memory-management placement-new dynamic-sizing