gpt4 book ai didi

c - 传递 char* 指针时出现段错误

转载 作者:行者123 更新时间:2023-11-30 19:32:39 25 4
gpt4 key购买 nike

我正在尝试制作一个程序来检查输入的字符串是否是回文或不使用递归。这是以下代码。

#include <stdio.h>
#include <string.h>

int isPalindrome(char* s, int i, int j) {
if (i >= j)
return 1;

if (s[i] != s[j])
return 0;

return isPalindrome(s, i+1, j-1);
}

int main() {

char* word;
printf("Enter a word \n");
scanf("%s", word);

if (isPalindrome(word, 0, strlen(word) - 1))
printf("Palindrome \n");
else
printf("Not Palindrome \n");

return 0;
}

程序似乎给出了由函数 isPalindrome() 引起的段错误。我的代码哪里出错了?

谢谢。

最佳答案

当你有一个字符指针时,你应该有另一个已分配的字符串并使其指向该字符串

或者直接为字符串动态分配空间。

如果你 malloc 一些空间,你的代码就可以工作

char *word = malloc(20);

或者您可以只创建一个字符串

char word[20];

关于c - 传递 char* 指针时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46858214/

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