
C++ STL调用clear函数,内存是怎么工作的?
2个回答
2011-10-31
展开全部
记住,如果你自己调用了new,那么自己delete。
如果是类,析构函数会自己调用。
你这里至少有2个错误。
list <Node> b;
b.push_back(Node());
b.pop_back()
这也都有错。里面的指针被复制后被删除了两次
这就更错了
list <Node *> b;
b.push_back( new Node);
b.pop_back()
不会调用指针指向的类的析构函数(否者你放了个0,怎么办?
除非你很了解c++,否者不要在类里放指针。 放个数组没问题。
如果是类,析构函数会自己调用。
你这里至少有2个错误。
list <Node> b;
b.push_back(Node());
b.pop_back()
这也都有错。里面的指针被复制后被删除了两次
这就更错了
list <Node *> b;
b.push_back( new Node);
b.pop_back()
不会调用指针指向的类的析构函数(否者你放了个0,怎么办?
除非你很了解c++,否者不要在类里放指针。 放个数组没问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询