| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1468 人关注过本帖, 2 人收藏
标题:一个很细的问题,你注意到了吗?
只看楼主 加入收藏
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 10楼 luyi_footman
即使超出内存范围也没问题。
比如俺只有 2GB 的内存,一样可以 ptr = 0xffffffff;
只要不访问它所指向的这个地址就没事~
蛋疼的时候就把它当个 unsigned int 用,不过俺还不曾如此蛋疼过

[ 本帖最后由 voidx 于 2011-8-25 19:22 编辑 ]
2011-08-25 19:21
a9517495424
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:305
专家分:139
注 册:2011-7-20
收藏
得分:0 
我用VC++6.0的结果是:
5,2367460
为什么和大家的不同啊。
2011-08-25 19:23
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
回复 12楼 a9517495424
我也用VC++6.0,得出的是2 5
2011-08-25 19:26
luyi_footman
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:32
专家分:100
注 册:2011-7-14
收藏
得分:0 
回复 12楼 a9517495424
不会的,应该是你copy的过程中有误,仔细检查下看看。

天道酬勤!
2011-08-25 19:28
Luminal
Rank: 6Rank: 6
等 级:侠之大者
帖 子:140
专家分:470
注 册:2011-8-24
收藏
得分:0 
回复 10楼 luyi_footman
你好 luyi_footman:

    这里我说的越界是值安全内存,程序中ptr所指向的内存空间不是一个安全空间,如果执行
*ptr=xxxx;
的话,实际上是把数据写入不安全的内存区域,
至于我说的难为初学者,不是针对你说的,是说那些专门出题的(学校老师),请别介意!
此题涉及面还是很多的,也是很多初学者的一个误区,我也是初学者,所以我恨这样的题!
2011-08-25 19:30
luyi_footman
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:32
专家分:100
注 册:2011-7-14
收藏
得分:0 
回复 11楼 voidx
我也试了下直接赋值0xffffffff,我在dev里编译了下没有报错,但是我在linux下用GCC编译就报错了,如果改成ptr = (unsigned int *)0xffffffff就不报错了。所以综合来看,应该是编译不同的话,处理方式也不同。不过从编程严谨的角度说,不应该把内存之外的地址赋给一个指针,就算非要这么这么做,也应该把这个地址转化为unsigned int *类型。个人理解。

天道酬勤!
2011-08-25 19:32
luyi_footman
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:32
专家分:100
注 册:2011-7-14
收藏
得分:0 
回复 15楼 Luminal
哈~不管是越界还是这种不寻常的初始化,如果程序要访问这个地址的值,将是一个灾难性的操作,作为程序员,不应犯这种错误的。
初学者也好,专业人士也罢,关键是一个心态。

天道酬勤!
2011-08-25 19:35
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 16楼 luyi_footman
呵呵,所以说是但疼的时候那么用么。
而且,gcc 给你的应该是警告
2011-08-25 20:07
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
收藏
得分:0 
不是说要写出一个让人懂的程序么,用一个正常的写法可以让100%的人看得动多好,搞些头脑急转弯就是那些老师
无聊的事,人不是老经过这样训练就得练出好的脑筋的嘛。
好的程序不是因为你能写出别人看不懂的代码.
而是就算你写了超级复杂的代码,别人也能看懂,这样说对么?不然当别人接手你的程序和维护你的程序,那个痛苦。
打个比方1+1=2.的问题还要用微积分,微分,这有什么意义嘛。。。
2011-08-25 20:34
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
&a 是 int (*)[5]类型

My life is brilliant
2011-08-25 21:11
快速回复:一个很细的问题,你注意到了吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028460 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved