【发布时间】:2011-03-01 09:20:21
【问题描述】:
我有一个包含指针的结构:
struct foo
{
char* f;
int* d;
wchar* m;
}
我有一个指向这些结构的共享指针向量:
vector<shared_ptr<foo>> vec;
vec 在堆栈上分配。当它在方法结束时超出范围时,将调用其析构函数。 (对吗?)这又会调用向量中每个元素的析构函数。 (对吗?)调用delete foo 是只删除foo.f 等指针,还是实际上从堆中释放内存?
【问题讨论】:
标签: c++ memory-management heap-memory