免费注册 查看新帖 |

Chinaunix

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

[函数] strcpy的奇怪问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-04-04 05:35 |只看该作者
不妨对程序稍作修改,char [][],用以取代 char *[]。然后,思考一下两者的区别。
提示:区别的实质在于字符串字面值(string literals)不同于字符数组。

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

论坛徽章:
0
13 [报告]
发表于 2008-04-04 10:34 |只看该作者

论坛徽章:
0
14 [报告]
发表于 2008-04-09 00:18 |只看该作者
strcpy(to[0],from); 试图修改 "one" 字符串字面量。关于这样做的后果,参见这个帖子:
http://bbs.chinaunix.net/viewthread.php?tid=1073499

>> 首先char * p = “xxxxx”这类声明;一般来说编译器会在代码段的常量数据区中开辟一段空间给p,系统默认为只读的常量,用户是不能修改它的内容的。

不是这样的。没有 const 修饰 p,在实现上 p 一般不会放到被保护的空间;可以放到保护空间的是 “xxxxx” 对象。有的实现把字符串字面量放到被只读区,有的放到可读写内存区(如果是这种情况,用户有可能成功修改字符串字面量)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP