【发布时间】:2012-05-05 18:55:00
【问题描述】:
我对删除 C++ 中的内容完全感到困惑。如果我声明一个对象数组并且如果我使用clear() 成员函数。我可以确定内存被释放了吗?
例如:
tempObject obj1;
tempObject obj2;
vector<tempObject> tempVector;
tempVector.pushback(obj1);
tempVector.pushback(obj2);
我可以安全地调用 clear 来释放所有内存吗?还是我需要遍历才能一一删除?
tempVector.clear();
如果把这个场景改成对象的指针,答案会和上面一样吗?
vector<tempObject> *tempVector;
//push objects....
tempVector->clear();
【问题讨论】:
-
第二种情况与第一种情况没有什么不同,只是它指向一个向量。我认为应该扩大这个问题,以便您了解内存分配/释放应该如何工作,并且可能还有指针。
-
这个说在函数堆栈中声明它会在关闭时自动调用析构函数。 stackoverflow.com/questions/3054567/…
标签: c++ vector delete-operator