double dval= 3.2;
double *mm = &dval;
cout << mm << endl;
delete(mm);
mm = NULL;
cout << dval << endl;
if(mm == NULL)
cout << "Exist" << endl;
这段程序输出什么?我测试过了,dval的值打印不出来,Exist也打印不出来。
delete指针之后dval对象已经不存在了,指针mm存储的是什么呢?为什么Exist也打印不出来呢?
请高手赐教。
delete(mm);
这个不对,delete 和 new 是成对出现的.
mm存储的是变量 dval 的地址
问题补充:谢谢一楼的回答。那为什么我给指针显示的赋值为NULL,还是打印不出Exist呢?
因为执行到delete(mm)这句,就出错了,所以后面没有执行.
你换成Debug模式运行.
cout << mm << endl;
应该能输出内存地址才对。
还有delete一般都不加括号的吧,个人感觉是不是执行到delete就出错了,导致后面的语句都没执行,你把括号去了试试。