免费注册 查看新帖 |

Chinaunix

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

[C] 数组的赋值问题 [复制链接]

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

回复 #19 samon_fu 的帖子

其实仔细看下库函数也好,还是系统调用等系统已经暴露出来的接口实现来看,人家都是在做检查的。

论坛徽章:
0
22 [报告]
发表于 2008-12-12 09:08 |只看该作者
原帖由 sbc19861004 于 2008-12-11 19:45 发表


你这么说很无稽。怎么说“shell热心肠,给arg加尾0”?这是约定,就像int得有4个字节,字符串要以'\0'结尾一样。要是有的shell没这么处理,那问题出在这个shell上,跟你写的程序无关。
至于网络编程的边界 ...




你说我很无稽。那我说你太理想化了。我说的问题无时无刻不存在。 另外shell加不加尾0  是人家自己的事情,写shell的程序员高兴给你加就加,懒得给你加就不给你加,你凭什么要求人家必须给你加。
再说sd的问题,套接字两端都是你自己写, 当然最好。但是现实往往不是这样的。也许人家就让你写这样一个函数,你怎么办,和经理大吵一架辞职不成?

PS:谁告诉你字符串一定要以尾0结尾?谁告诉你int一定要4个字节?谁告诉你shell就必须给参数加尾0?

[ 本帖最后由 wangqi0021 于 2008-12-12 09:10 编辑 ]

论坛徽章:
0
23 [报告]
发表于 2008-12-12 09:14 |只看该作者
原帖由 wangqi0021 于 2008-12-12 09:08 发表




你说我很无稽。那我说你太理想化了。我说的问题无时无刻不存在。 另外shell加不加尾0  是人家自己的事情,写shell的程序员高兴给你加就加,懒得给你加就不给你加,你凭什么要求人家必须给你加。
再说s ...

。。。如果argv的最后没有加0,怎么判断字符串的结束?

论坛徽章:
0
24 [报告]
发表于 2008-12-12 09:14 |只看该作者
原帖由 5毛党党员 于 2008-12-12 09:14 发表

。。。如果argv的最后没有加0,怎么判断字符串的结束?

对啊。 所以我在上面说要用堆,不能用局部变量

[ 本帖最后由 wangqi0021 于 2008-12-12 09:16 编辑 ]

论坛徽章:
0
25 [报告]
发表于 2008-12-12 09:21 |只看该作者
原帖由 wangqi0021 于 2008-12-12 09:14 发表

对啊。 所以我在上面说要用堆,不能用局部变量

我觉得这个是在把简单问题复杂化。。。

如果参数不是字符串,完全可以用读配置文件的方法代替

论坛徽章:
0
26 [报告]
发表于 2008-12-12 09:22 |只看该作者
原帖由 5毛党党员 于 2008-12-12 09:21 发表

我觉得这个是在把简单问题复杂化。。。

如果参数不是字符串,完全可以用读配置文件的方法代替


边界问题是不能不管的。  至少我在我的代码里会把所有的边界问题都处理一边。甚至永远不会出现的问题。另外如果用堆,在可重入的角度看也好一些。不提倡用局部变量

论坛徽章:
0
27 [报告]
发表于 2008-12-12 14:49 |只看该作者
先memset
再 strncpy 吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP