我对C完全不熟悉,我即将编写一个反转字符串的函数。我的代码如下所示:
char *str = "abcdef";
char *ptr;
for(ptr = str; *ptr ; ptr++);
for(; str < --ptr; str++)
{
char c = *str;
*str = *ptr;
*ptr = c;
}
我收到了分段错误错误。而且我没有看到错误(也许它太明显了)。任何提示?
干杯
答案 0 :(得分:6)
更改
char *str = "abcdef";
到
char str[] = "abcdef";
第一个str
指向字符串文字和字符串文字在C中无法修改,
答案 1 :(得分:0)
您的字符串存储在ROM中,因此您无法写入。取决于你的平台。