0
为什么会得到分割失败?字符数组分割错误
char *c = "dog";
printf ("char is %c\n", s[0]);
s[0]='i';
printf ("s = %s\n", s);
输出: char是d 分段故障
为什么它的错误在第二个字符串?我只是试图了解它...
为什么会得到分割失败?字符数组分割错误
char *c = "dog";
printf ("char is %c\n", s[0]);
s[0]='i';
printf ("s = %s\n", s);
输出: char是d 分段故障
为什么它的错误在第二个字符串?我只是试图了解它...
char *是一个常量字符串,其中的字符应该改变喜欢“s [0] ='我';” 将字符串改为char数组。
char s[] = "dog";
printf ("char is %c\n", s[0]);
s[0]='i';
printf ("s = %s\n", s);
我知道,如果我这样做了,但它为什么会出现内部错误? – DDukesterman
我发现这个来自Wiki,不太熟悉汇编的东西:)“当包含此代码的程序被编译时,字符串”hello world“被放置在程序可执行文件的标记为只读的部分;当加载,操作系统将其他字符串和常量数据放在只读内存段中。“ – Diracnote