我有一個包含指針一個結構: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