我很困惑为什么以下不起作用:
char * f = "abcdef";
strcpy(f, "abcdef");
printf("%s",f);
char s[] = "ddd";
strcpy(&s[0], "eee");
printf("%s", s);
在这两个例子中,strcpy 都收到了一个 char *,但在第一个例子中它却死得很惨。
"abcdef"
and "ddd"
是可能驻留在地址空间的只读部分中的字符串文字。char s[] = "ddd"
确保这个文字被复制到堆栈 - 所以它是可修改的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)