我正在嘗試編寫一個檢查迴文的程序。 但不知何故,我得到了一個分段錯誤。 這個程序:c中的分段錯誤
#include <stdio.h>
int palindrome(char *beginning); //functions declaration
int main()
{
char str[255],c; //variables
int i=0;
printf("please enter a string: "); //message to user
fgets(str,255,stdin);
palindrome(str[255]);
return 0;
}
int palindrome(char *beginning) //functions to chack palindrome
{
char *end = beginning + strlen(beginning) -1;
if (end - beginning <= 0)
return 1;
if (!isalpha(*beginning))
palindrome(beginning+1);
if (!isalpha(*end))
{
*end = '\0';
palindrome(beginning);
}
if (*beginning == *end)
{
*end = '\0';
return palindrome(beginning+1);
}
return 0;
}
檢查你的編譯器警告。 '迴文(str [255])'是錯誤的。該函數需要'char *',但'str [255]'是一個'char',並且還可以訪問數組。 – Barmar
當您嘗試編譯時,您的編譯器是否告訴您任何感興趣的東西?如果是的話,*它說了什麼?如果沒有,請獲得符合標準的編譯器。 – EOF