为什么我的指针不是NULL?

时间:2011-05-11 03:59:12

标签: c++ pointers null

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

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
}

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

3 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:2)

删除后,将指针设置为NULL

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