【发布时间】:2011-01-08 15:17:48
【问题描述】:
上下文
我正在学习 C,我正在尝试使用指针反转字符串。 (我知道你可以使用数组;这更多是关于学习指针。)
问题
尝试运行以下代码时,我不断收到分段错误。 GCC 似乎不喜欢 *end = *begin; 行。 为什么会这样?
特别是因为我的代码与the non-evil C function already discussed in another question 几乎相同
#include <stdio.h>
#include <string.h>
void my_strrev(char* begin){
char temp;
char* end;
end = begin + strlen(begin) - 1;
while(end>begin){
temp = *end;
*end = *begin;
*begin = temp;
end--;
begin++;
}
}
main(){
char *string = "foobar";
my_strrev(string);
printf("%s", string);
}
【问题讨论】:
-
这实际上是一个 this post 的副本,试图写入一个常量字符串 - 投票重新打开,以便它可以重新关闭以获取正确的副本。
-
@KenY-N 对我来说很有意义 :) 也投票关闭。