免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: cdphp
打印 上一主题 下一主题

今天遇到的一个极品指针问题 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2008-01-03 13:54 |只看该作者

回复 #30 zx_wing 的帖子

嗯. 明白了. 谢谢指教!

论坛徽章:
0
32 [报告]
发表于 2008-01-03 17:36 |只看该作者
不管怎样,我感觉我学到些知识。

论坛徽章:
0
33 [报告]
发表于 2008-01-04 12:18 |只看该作者
To fallshuang

>> 我哪句话说错了? 你讲清楚点,不要顾左右而言他。

很明显,我已经引用了你的“这个代码之所以崩溃不是因为不符合C99的语义,是因为linker和loader让它崩溃。”这句话,显然是这句话有错。而且稍微留意一下就会注意到:我反驳的是你这句话的后半部分,对于前半句并没有触及。

我也没有“顾左右而言他”,只是指出了你话中的错误,然后说明了原因。如果说给人“顾左右而言他”之感觉的,恰恰是我批驳你的这句话。

再详细地说一下你的这句话为什么不对:程序错误不是在link时产生的,linker不是一个运行时概念;loader算是一个运行时概念,但是程序的错误不是在load时发生的,而是在load之后的运行时发生的。至于程序产生运行错误的真正原因是操作系统的内存保护机制在起作用。

>> 是因为linker和loader让它崩溃。
>> 程序完全可以不崩溃!!!!!!! 是否崩溃完全取决于loader

我想用铅笔画一个图形,比如圆形和正方形。按照你上面的逻辑,那么最终画出的是圆形还是正方形完全取决于所用的铅笔。这个结论是不是感到有点荒谬?

其实我也可以用钢笔,甚至不用笔也可以画图。loader的作用很象这个例子中的铅笔。

>> "somthing" 这个玩意儿只是被编译器放在elf的rodata段而已

然后loader只不过按照设定装载数据和程序代码而已。因此,又不是程序转载过程出错,搂主程序出现的运行错误与loader何干?

论坛徽章:
0
34 [报告]
发表于 2008-01-05 00:39 |只看该作者
小弟在这里再次跪拜一次,偶是初学者,不好意思让大家卷入激烈争论,这次果然学到了不少。这里高手很多,很和谐

论坛徽章:
0
35 [报告]
发表于 2008-01-05 21:36 |只看该作者
呵呵呵,都很牛,学习了!!1

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
36 [报告]
发表于 2008-01-05 21:58 |只看该作者
呵呵,不知道是什么来头,见人就呼一声“年轻人”,倒是挺和我胃口的,呵呵,我喜欢!有性格!
水平应该也是值得我注意一下下的。只是对 linker 和 loader 的理解有相当的偏差。

[ 本帖最后由 flw 于 2008-1-5 21:59 编辑 ]

论坛徽章:
0
37 [报告]
发表于 2008-01-07 11:09 |只看该作者
原帖由 fallshuang 于 2008-1-2 21:40 发表



请把我的话看仔细点, 我说编译链接都不应该有问题

我没说在linux-x86上运行不会有问题!

你知道编译链接和运行有什么区别么? 仔细想想


你执行  gcc a.c 没出任何错,就说明编译链接没有问题。 ...


还是你强,一个简单的VS2005问题非给你从内核到应用层解释的这么清楚

不过还是建义还是要跳出程序员的思维教人会更好一点

[ 本帖最后由 xfly_t 于 2008-1-7 11:21 编辑 ]

论坛徽章:
0
38 [报告]
发表于 2008-01-08 17:22 |只看该作者
几天涨见识了,知道什么是极品指针了,呵呵

论坛徽章:
0
39 [报告]
发表于 2008-01-08 23:51 |只看该作者
跟, fallshuang及其他朋友学了很多, 感谢楼主这贴, 虽对你们来讲是老调重弹, 但我确实学到了新的知识, 感谢你们.

我希望大家不要再在这个上面争了

给 fallshuang: 你说的也没错,大家说的也没错,因此,我觉得你没必要动上肝火,你对内核的深入了解我很佩服,提出有不同的地方确实很有意思,虽然有不同的,更有意思的意见,我想是不是可以更友好一点提出来.没有必要把讨论弄成争执吧.

我说多了, 我只是个菜鸟,我学到了很多,感谢大家,无意冒犯任何人,我刚来宝地, chinaunix 久已闻名,最近打算长居此地混迹此地,望大家多多照顾

论坛徽章:
0
40 [报告]
发表于 2008-01-18 12:26 |只看该作者

回复 #4 cdphp 的帖子

does't it have a problem?
if strlen(tring1)>30,how does it work?

may be there is a agument fault...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP