我很困惑,为什么以下不起作用:
char * f = "abcdef";
strcpy(f,"abcdef");
printf("%s",f);
char s[] = "ddd";
strcpy(&s[0],"eee");
printf("%s",s);
在两个例子中,strcpy都收到一个char *,但在第一个例子中,它死了一个可怕的死亡.
“abcdef”和“ddd”是可能驻留在地址空间的只读部分的字符串
文字. char s [] =“ddd”确保这个
文字被复制到堆栈 – 所以它是可
修改的.
原文链接:https://www.f2er.com/c/115357.html