BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

[C++] 分析下这个程序的输出结果!
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
qingfengjianke
精灵



UID:658349
注册:2007-12-29
最后登录: 2008-09-06
帖子:188
精华:0

可用积分:649 (稍有积蓄)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


11楼 发表于 2008-6-27 11:34 


QUOTE:
原帖由 5毛党党员 于 2008-6-27 11:29 发表
因为你在释放那段内存之后,并没有做过任何有关内存的操作。。。

所以,一直是20也是可以理解的。


如果你在一个大型程序的开头执行fan,结尾再打印看看。


#include <iostream>
using namespace std;

int *fun()
{
        int t=20;
        return &t;
}

int main()
{
        int i = 10;
        int *p = &i;
        p=fun();
        cout << *p<<endl;
        cout << *p<<endl;
        cout << *p<<endl;
        cout << *p<<endl;
        return 0;
}

变了..



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
gaochang2008   帅哥
精灵



UID:659303
注册:2008-1-2
最后登录: 2008-09-06
帖子:218
精华:0

可用积分:230 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


12楼 发表于 2008-6-27 11:37 
回复 #7 qingfengjianke 的帖子

int *fun()
{
        int t=20;
        return &t;
}
后面加入其他的函数,,结果就不是20 了,,,



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________


天生我才必有用!!!
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
5毛党党员
天使



UID:677490
注册:2008-3-17
最后登录: 2008-09-05
帖子:1403
精华:0

可用积分:996 (稍有积蓄)
信誉积分:10
专家积分:37 (本版:22)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


13楼 发表于 2008-6-27 11:37 
恭喜恭喜,lz终于得到自己想要的结果了。。。


仍旧是flw的那句话:

错误的方法不一定会得到错误的结果



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
yt_Wang
新手




UID:136645
注册:2004-2-27
最后登录: 2008-09-04
帖子:3
精华:0

可用积分:15 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


14楼 发表于 2008-7-14 18:37 
结果是不确定的,如果在fun()执行完后发生系统调度,释放的内存被其他程序使用,那么再执行cout的时候,结果就不是原来的值了。



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.038103 second(s), 4 queries , Gzip enabled