提供了一個指向字符串的指針數組作爲輸入。任務是反轉存儲在輸入指針數組中的每個字符串。我做了一個名爲reverseString()的函數,它反轉了傳遞給它的字符串。據我所知,這個功能正常工作。存儲在指向C中多個字符串的指針數組中的單個字符串存在問題
在輸入指針數組中存儲/引用的字符串被逐個發送到reverseString()函數。但是,當傳遞的字符串的值使用臨時變量交換時,代碼會在reverseString()函數的某個位置掛起。我無法弄清爲什麼代碼在交換值時掛起。請幫我解決一下這個。
的代碼如下:
#include <stdio.h>
void reverseString(char*);
int main()
{ char *s[] = {"abcde", "12345", "65gb"};
int i=0;
for(i=0; i< (sizeof(s)/sizeof(s[0])); i++)
{ reverseString(s[i]);
printf("\n%s\n", s[i]);
}
getch();
return 0;
}//end main
void reverseString(char *x)
{ int len = strlen(x)-1;
int i=0;
char temp;
while(i <= len-i)
{ temp = x[i];
x[i] = x[len-i];
x[len-i] = temp;
i++;
}
}//end reverseString
這功課嗎? –
我從參考書上學習C編程。這個問題是本書的練習之一。所以我想這不能歸類爲功課,可以嗎? (我不是很清楚這個,因爲我是一個新手在stackoverflow ...) – nhylated
http://stackoverflow.com/questions/1614723/why-is-this-c-code-causing-a-segmentation-故障 即使功能名稱也是一樣的。 – AnT