0

为什么这会产生分段错误?

char *c = "dog";
     printf ("char is %c\n", s[0]);    
     s[0]='i';    
     printf ("s = %s\n", s);

输出:char 是 d 分段错误

为什么它在第二个字符串上出错?我只是想理解它...

4

1 回答 1

2

char* 是一个 const 字符串,里面的 char 应该改成 "s[0]='i'; " 把字符串改成 char 数组就可以了。

char s[] = "dog";
printf ("char is %c\n", s[0]);
s[0]='i';
printf ("s = %s\n", s);
于 2013-06-20T04:11:23.963 回答