但是书上说,对空指针的释放不会造成程序异常啊?
你可以试试下面的代码:#include<iostream>#include<cctype>using namespace std;
int main(){ cout<<"OK!@\n"; int *p=new int(2); delete p; cout<<"OK!@\n"; p=0; //好象注释掉这句话也没有影响啊! delete p; cout<<"OK!@\n"; system("pause"); return 0;}
[此贴子已经被作者于2006-4-29 11:53:37编辑过]
我对搂住的程序在vc6。0下运行过 可以得出结果说到的迷途指针 可能意思是 指针指向的地址不确定吧
用我们意思是 野指针给0是怕以后人为的再次用到产生错误或者不经意把该指针内不确定的内容修改
delete p之后的指针不是空指针,只是p指向的内存被释放掉了,p本身没有是放,它指向了不合法的内存。这是后访问p就会造成程序异常。我是这个意思。
我知道delete p 不是空指针,所以p=0就是空指针了