爱问知识人 爱问教育 医院库

C 中指针指向的内容被释放后指针指向哪里?

首页

C++中指针指向的内容被释放后指针指向哪里?

比如一颗树,根节点有一个指向它的左儿子的指针,Root->Left,如果这时候delete Left; 那么此时根节点的指向左儿子的指针是NULL?还是 哪里都不指向?

提交回答
好评回答
  • 2019-03-09 14:34:12
    这个与你用什么编译器有关。对于一些常见编译器,你delete之前left指向哪里,delete之后你的left还是指向那里。但是delete之后,你的left所指向的对象已经被销毁,所以如果你还继续去访问left所指向的内容的话,你可能遇到程序崩溃等异常。作为一种编程习惯,一般来说delete一个对象之后都要把指向它指针手工修改为 

    蔺***

    2019-03-09 14:34:12

其他答案

    2019-03-09 14:35:02
  • 假设二叉树非空,根结点有左孩子结点,根结点的左孩子结点指针域Root->Left指向其左孩子结点。
    删除根结点的左孩子结点,系统在执行“delete Root->Left;”时,会把之前动态申请的该左孩子结点(占用的空间)释放掉。在此过程中,系统使用了Root->Left的值,但通常不会修改Root->Left的值。因此,在删除该左孩子结点之后,我们应该在程序中主动将Root->Left的值改为NULL,即加上“Root->Left = NULL;”。

    想***

    2019-03-09 14:35:02

  • 2019-03-09 14:07:34
  • 指针被释放后,原来的空间可能被其他变量所使用,因此如果你部进行处理,是很危险的,有可能导致程序被终止(现在很多windows程序突然显示XXXX地址被读写,这种原因也是其一
    因此要写一个健壮的程序,空间释放后就应该赋为NULL。
    这样处理后,有工具扫描出来这样的情况,并告诉你你的程序是不是存在问题。如果部进行处理,扫描工具发现不了问题

    谁***

    2019-03-09 14:07:34

类似问题

换一换

相关推荐

正在加载...
最新资料 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 177-196
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):