我有一个包含指针一个结构:C++:删除一个结构?
struct foo
{
char* f;
int* d;
wchar* m;
}
我有共享指针的这些结构的载体:
vector<shared_ptr<foo>> vec;
vec
是在堆栈上分配。当它在方法结束时超出范围时,它的析构函数将被调用。 (右?)这将依次调用向量中每个元素的析构函数。 (对吗?)delete foo
是否只删除了指针,如foo.f
,还是它实际上从堆中释放内存?
或者,也可以将f,d和m更改为使用自动或共享指针。 – 2010-06-08 21:19:02