作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这似乎是一个愚蠢的问题,但我问的原因是因为我有这个析构函数:
list::~list()
{
for (node* next = headByName->nextByName; headByName; headByName = next)
{
delete headByName;
}
}
而且 valgrind 仍然说我有内存泄漏。所以我想我真正的问题是:我的析构函数编码是否错误,或者通过遍历列表的头节点来销毁列表是否不好?
最佳答案
您的代码没有做正确的事情。
next
,因此 headByName
在第一次迭代后不会更改。nullptr
,则在初始化中取消引用 nullptr。试试这个:
list::~list()
{
while (headByName)
{
node* next = headByName->nextByName;
delete headByName;
headByName = next;
}
}
关于c++ - 我可以在析构函数中遍历链表的头节点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049469/
我是一名优秀的程序员,十分优秀!