析构函数调用

来源:3-4 链表编码实战(二)

_夕晨踏雪

2016-09-22 22:14

在本次的析构函数中,已经delete m_pList,为什么还要m_pList=NULL?

感觉完全没有必要,为什么老师说这样更好?

写回答 关注

3回答

  • 黑巫师0
    2016-12-26 11:11:44
    已采纳

    delete m_pList;   这个操作只是将指针m_pList所指向的内存空间释放掉,使内存重归操作系统。但m_pList的指向位置并没有改变,此位置的内存已经被释放掉了,若再用m_pList访问这块内存,系统就会崩溃出错!为了防止这种误操作所引起的崩溃出错。所以将m_pList置为NULL的安全状态,就避免这种野指针事件的发生。希望对你有所帮助~

  • _夕晨踏雪
    2016-09-23 14:46:20

    难道释放内存后。m_pList还仍然存在着吗

  • vhj
    2016-09-23 10:10:15

    delete 只做释入内存, m_pList的值不做修改。 

数据结构探险之线性表篇

线性表的主体顺序表和链表,让学员能够将知识融会贯通学以致用

57563 学习 · 257 问题

查看课程

相似问题