<分区>
我完全不熟悉 C,我将要编写一个函数来反转字符串。我的代码如下所示:
char *str = "abcdef";
char *ptr;
for(ptr = str; *ptr ; ptr++);
for(; str < --ptr; str++)
{
char c = *str;
*str = *ptr;
*ptr = c;
}
我收到段错误。而且我没有看到错误(也许太明显了)。有什么提示吗?
干杯
<分区>
我完全不熟悉 C,我将要编写一个函数来反转字符串。我的代码如下所示:
char *str = "abcdef";
char *ptr;
for(ptr = str; *ptr ; ptr++);
for(; str < --ptr; str++)
{
char c = *str;
*str = *ptr;
*ptr = c;
}
我收到段错误。而且我没有看到错误(也许太明显了)。有什么提示吗?
干杯
最佳答案
改变
char *str = "abcdef";
到
char str[] = "abcdef";
第一个str
指向一个字符串字面量并且字符串字面量在C 中是不可修改的,
关于c - C 代码中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20455297/