版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mcl2840072208/article/details/78262486
这篇文章代码取自C++简单链表操作
Person * d1, *d2;
d1 = head->getNext();
head->setNext(p2);
while (d1 != NULL) {
d2 = d1->getNext();
delete d1;
d1 = d2;
}
d1,d2分别是类对象指针
class Person
{
public:
Person();
~Person();
void setID(int id);
void setName(const char * name);
int getID();
char * getName() const;
void setNext(Person * a);
Person * getNext() const;
private:
int ID;
char * Name;
Person * next;
};
在使用delete循环释放指针的时候发生错误 ,引发一个断点,
之所以引发这个错误的原因是之前reserve 替代的链表是使用数组快捷操作 导致delete d1 出错
而应该改成delete []
用delete [] 代替delete 的时候 ,d2被滞空 。
delete 对应 new
delete [] 对应 new []
不能交替 没有定义交替的方法