c++中链表析构函数删除指针的问题

~LinkList()
{
p = head;
while(p)
{
q = p;
p = p->next;
delete q;
}
head = NULL;
}
将p指针赋给q,再将p指向下一个指针,再把q删除,难道就能间接删除p了吗?为什么?

p 只是一个指针,释放的是其指向的空间
这个过程是p将当前结点的地址赋值给q,p再后移到其后继结点,接着通过q将刚才那个当前结点释放了
经过这一轮循环,自然所有的结点都被释放了
温馨提示:答案为网友推荐,仅供参考
相似回答