【发布时间】:2015-01-09 14:36:59
【问题描述】:
我正在尝试编写一个简单的 C 程序来反转字符串。代码如下:
void swap(char* a, char* b){
char* temp;
*temp = *a;
*a = *b;
*b = *temp;
}
char* reverseString(char* str){
int length = strlen(str);
int i=0;
for(i=0; i<(length/2); i++){
swap(&str[i], &str[length-i-1]);
}
return str;
}
int main(){
char str[] = "Hello World";
reverseString(str);
printf("%s\n",str);
return 0;
}
它确实打印了正确的结果,但随后它给出了一个分段错误。它发生在主函数的“return 0”语句中。
您能帮我弄清楚为什么会发生 SEG FAULT。
谢谢。
【问题讨论】:
-
char* temp;应该是char temp;
标签: c pointers segmentation-fault swap