【发布时间】:2011-05-02 05:36:53
【问题描述】:
/* Reverse a string in place
*/
#import <stdio.h>
void reverse(char * str);
int main()
{
char * string = "This is a string.";
printf("%s\n", string);
reverse(string);
printf("%s\n", string);
}
void reverse(char * str)
{
char * start = str;
char * end = str;
if(0==*str)
return;
//Find the end
for(;0 != *(++end););
end--;
do
{
*end = *end ^ *start;
*start = *end ^ *start;
*end = *end ^ *start;
}while(++start < --end);
}
我不确定为什么这个段会出错。是因为我正在用一个常量字符串初始化我的 char * 吗?
【问题讨论】:
-
这在这个重复的问题中得到了广泛的讨论。
标签: c segmentation-fault reverse