C++中指针指向的内容被释放后指针指向哪里?
比如一颗树,根节点有一个指向它的左儿子的指针,Root->Left,如果这时候delete Left; 那么此时根节点的指向左儿子的指针是NULL?还是 哪里都不指向?
这个与你用什么编译器有关。对于一些常见编译器,你delete之前left指向哪里,delete之后你的left还是指向那里。但是delete之后,你的left所指向的对象已经被销毁,所以如果你还继续去访问left所指向的内容的话,你可能遇到程序崩溃等异常。作为一种编程习惯,一般来说delete一个对象之后都要把指向它指针手工修改为
假设二叉树非空,根结点有左孩子结点,根结点的左孩子结点指针域Root->Left指向其左孩子结点。 删除根结点的左孩子结点,系统在执行“delete Root->Left;”时,会把之前动态申请的该左孩子结点(占用的空间)释放掉。在此过程中,系统使用了Root->Left的值,但通常不会修改Root->Left的值。因此,在删除该左孩子结点之后,我们应该在程序中主动将Root->Left的值改为NULL,即加上“Root->Left = NULL;”。
指针被释放后,原来的空间可能被其他变量所使用,因此如果你部进行处理,是很危险的,有可能导致程序被终止(现在很多windows程序突然显示XXXX地址被读写,这种原因也是其一 因此要写一个健壮的程序,空间释放后就应该赋为NULL。 这样处理后,有工具扫描出来这样的情况,并告诉你你的程序是不是存在问题。如果部进行处理,扫描工具发现不了问题
答:传统指南针红色端,指向的是地球的北方。 手机指南针:依据手表指针和太阳方向辨别方位的原理作成.黑色指针指向太阳,红色指针的方向就是正北方向了。详情>>
答:有兴趣就自己学,大学中想学好任何一门课程都要靠自己,老师只是一个摆设,他根本帮不上你任何忙。记住靠自己,想学就去学吧。详情>>
答:网上买2手的也就几块钱而已详情>>