首页 新闻 赞助 找找看

一个不解的C++问题

0
[已关闭问题] 关闭于 2009-11-13 21:28

    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也打印不出来呢?

请高手赐教。

 

问题补充: 谢谢一楼的回答。那为什么我给指针显示的赋值为NULL,还是打印不出Exist呢?
︶ㄣ第二名的主页 ︶ㄣ第二名 | 初学一级 | 园豆:147
提问于:2009-11-13 15:33
< >
分享
所有回答(2)
0

delete(mm);

这个不对,delete 和 new 是成对出现的.

mm存储的是变量 dval 的地址

 

问题补充:谢谢一楼的回答。那为什么我给指针显示的赋值为NULL,还是打印不出Exist呢?

因为执行到delete(mm)这句,就出错了,所以后面没有执行.

你换成Debug模式运行.

Launcher | 园豆:45045 (高人七级) | 2009-11-13 15:56
0

cout << mm << endl;
应该能输出内存地址才对。

还有delete一般都不加括号的吧,个人感觉是不是执行到delete就出错了,导致后面的语句都没执行,你把括号去了试试。

dege301 | 园豆:2825 (老鸟四级) | 2009-11-13 16:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册