gpt4 book ai didi

c - c中的段错误

转载 作者:行者123 更新时间:2023-11-30 21:38:55 28 4
gpt4 key购买 nike

我正在尝试编写一个检查回文的程序。但不知怎的,我遇到了段错误。该程序:

#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;

}

最佳答案

char str[255] 包含 255 个值。使用 palindrome(str[255]); 您尝试传递 str 的第 256 个(!)值,该值不存在。

此外,回文接受一个char *指向char的指针,但是你传递的是一个char,这会导致一堆其他错误。您可能正在寻找 &str[254] 或者,正如评论中指出的那样,只是 palindrome(str),这更有可能。

关于c - c中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44527747/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com