int *p;
p=new int[100];
delete p;
这时p是否等于NULL?

解决方案 »

  1.   

    delete只是删除了那块内存,也就是说那块内存现在可以被系统用于它途了。
    但p还是指向那个地址,你也可以使用*p来获取其内容,只不过该内容可能被其它进程改写了。
      

  2.   

    delete p; delete仅释放堆上空间,p这个变量还存放着原来那个地址。
    这时的P是个野指针,最好手工指定为NULL。
      

  3.   

    养成习惯,在delete以后把指针设为NULL,防止之后再使用这个指针变量时是也指针不好查错
      

  4.   

    delete仅释放空间,p是个变量,它仍然保存原来的地址值
      

  5.   

    delete是不会自动将指针置为NULL的,你必须自己置为NULL,防止以后判断出错。
      

  6.   

    在borland c++中,指针指向的内存释放后,指针是自动指向NULL。
      

  7.   

    因为delete只是将原来由new分配的内存空间标记为可使用,这样这块内存就可以被系统重新使用,否则这块内存是不能被使用的。该指针被delete后,是表明该指针所指向的内存被释放,而指针的值不变,指针仍指向该块内存,因此在释放指针所指的内存后,要将指针赋值为NULL,这样才能使你的程序代码安全,如果没有赋值为NULL,林锐称其为野指针。