|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个很细的问题,你注意到了吗?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1468
人关注过本帖,
2
人收藏
标题:
一个很细的问题,你注意到了吗?
只看楼主
加入收藏
voidx
来 自:邯郸
等 级:
火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
第
11
楼
收藏
得分:0
回复 10楼 luyi_footman
即使超出内存范围也没问题。
比如俺只有 2GB 的内存,一样可以 ptr = 0xffffffff;
只要不访问它所指向的这个地址就没事~
蛋疼的时候就把它当个 unsigned int 用,不过俺还不曾如此蛋疼过
[
本帖最后由 voidx 于 2011-8-25 19:22 编辑
]
2011-08-25 19:21
举报帖子
使用道具
赠送鲜花
a9517495424
等 级:
论坛游侠
帖 子:305
专家分:139
注 册:2011-7-20
第
12
楼
收藏
得分:0
我用VC++6.0的结果是:
5,2367460
为什么和大家的不同啊。
2011-08-25 19:23
举报帖子
使用道具
赠送鲜花
hjywyj
等 级:
小飞侠
威 望:
3
帖 子:1114
专家分:2611
注 册:2010-4-14
第
13
楼
收藏
得分:0
回复 12楼 a9517495424
我也用VC++6.0,得出的是2 5
2011-08-25 19:26
举报帖子
使用道具
赠送鲜花
luyi_footman
等 级:
论坛游侠
帖 子:32
专家分:100
注 册:2011-7-14
第
14
楼
收藏
得分:0
回复 12楼 a9517495424
不会的,应该是你copy的过程中有误,仔细检查下看看。
天道酬勤!
2011-08-25 19:28
举报帖子
使用道具
赠送鲜花
Luminal
等 级:
侠之大者
帖 子:140
专家分:470
注 册:2011-8-24
第
15
楼
收藏
得分:0
回复 10楼 luyi_footman
你好 luyi_footman:
这里我说的越界是值安全内存,程序中ptr所指向的内存空间不是一个安全空间,如果执行
*ptr=xxxx;
的话,实际上是把数据写入不安全的内存区域,
至于我说的难为初学者,不是针对你说的,是说那些专门出题的(学校老师),请别介意!
此题涉及面还是很多的,也是很多初学者的一个误区,我也是初学者,所以我恨这样的题!
2011-08-25 19:30
举报帖子
使用道具
赠送鲜花
luyi_footman
等 级:
论坛游侠
帖 子:32
专家分:100
注 册:2011-7-14
第
16
楼
收藏
得分:0
回复 11楼 voidx
我也试了下直接赋值0xffffffff,我在dev里编译了下没有报错,但是我在linux下用GCC编译就报错了,如果改成ptr = (unsigned int *)0xffffffff就不报错了。所以综合来看,应该是编译不同的话,处理方式也不同。不过从编程严谨的角度说,不应该把内存之外的地址赋给一个指针,就算非要这么这么做,也应该把这个地址转化为unsigned int *类型。个人理解。
天道酬勤!
2011-08-25 19:32
举报帖子
使用道具
赠送鲜花
luyi_footman
等 级:
论坛游侠
帖 子:32
专家分:100
注 册:2011-7-14
第
17
楼
收藏
得分:0
回复 15楼 Luminal
哈~不管是越界还是这种不寻常的初始化,如果程序要访问这个地址的值,将是一个灾难性的操作,作为程序员,不应犯这种错误的。
初学者也好,专业人士也罢,关键是一个心态。
天道酬勤!
2011-08-25 19:35
举报帖子
使用道具
赠送鲜花
voidx
来 自:邯郸
等 级:
火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
第
18
楼
收藏
得分:0
回复 16楼 luyi_footman
呵呵,所以说是但疼的时候那么用么。
而且,gcc 给你的应该是警告
2011-08-25 20:07
举报帖子
使用道具
赠送鲜花
cosam
等 级:
业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
第
19
楼
收藏
得分:0
不是说要写出一个让人懂的程序么,用一个正常的写法可以让100%的人看得动多好,搞些头脑急转弯就是那些老师
无聊的事,人不是老经过这样训练就得练出好的脑筋的嘛。
好的程序不是因为你能写出别人看不懂的代码.
而是就算你写了超级复杂的代码,别人也能看懂,这样说对么?不然当别人接手你的程序和维护你的程序,那个痛苦。
打个比方1+1=2.的问题还要用微积分,微分,这有什么意义嘛。。。
2011-08-25 20:34
举报帖子
使用道具
赠送鲜花
lz1091914999
来 自:四川
等 级:
贵宾
威 望:
37
帖 子:2011
专家分:5959
注 册:2010-11-1
第
20
楼
收藏
得分:0
&a 是 int (*)[5]类型
My life is brilliant
2011-08-25 21:11
举报帖子
使用道具
赠送鲜花
31
2/4页
1
2
3
4
快速回复:
一个很细的问题,你注意到了吗?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.028460 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved