【问题标题】:Why isn't my pointer NULL?为什么我的指针不是NULL?
【发布时间】:2011-08-22 23:28:15
【问题描述】:

我有一个家庭的链接列表。我像这样删除了其中一个孩子的兄弟姐妹。

p->myWife->myChildren=p->myWife->myChildren->mySibling; //makes the sibling the child so the list is not broken when deleting
delete p->myWife->myChildren->mySibling;

后来我根据这个打印孩子/兄弟姐妹的属性

if(p->myWife->myChildren->mySibling!=NULL){
 print the childs attributes
}

每当我打印时,它都会为兄弟打印一个奇怪的数字(我假设它是一个内存地址)我需要做什么才能使该指针为空?

【问题讨论】:

标签: c++ pointers null


【解决方案1】:

删除指针不会将其设置为零。它只是释放指针指向的内存。要将其设置为 NULL,您必须自己将其设置为 NULL。

p->myWife->myChildren->mySibling = NULL /*defined to be zero */;

【讨论】:

    【解决方案2】:

    删除会释放指针引用的内存。要使指针为 NULL,请将其赋值为 NULL!

    p->myWife->myChildren->mySibling = NULL;
    

    【讨论】:

      【解决方案3】:

      删除后,设置指针为NULL

      p->myWife->myChildren->mySibling = NULL;
      

      【讨论】:

        猜你喜欢
        • 2020-04-22
        • 1970-01-01
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 2010-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多