-1
如果我有下面的類:C++另一個內存泄漏問題
class SimpleContainer {
private:
std::vector<int> vec_;
public:
void set_vec(std::vector<int>* vec) {
vec_ = *vec;
}
SimpleContainer(){}
~SimpleContainer(){}
};
然後像做:
int main() {
std::vector<int>* vec = new std::vector<int>();
SimpleContainer* sc = new SimpleContainer();
sc->set_vec(vec);
delete sc;
}
是否VEC得到泄露?還是它會被SimpleContainer的析構函數自動清理?假設我只調用一次set_vec。
是的。你在'vec_ = * vec'時複製一份,所以原稿仍然會被泄漏。 – OMGtechy
你爲什麼要自己管理動態分配的內存,並抱怨泄漏?使用什麼用[標準庫]提供(http://en.cppreference.com/w/cpp/memory) –