Function 检测到堆栈损坏(未知)

Function 检测到堆栈损坏(未知),function,recursion,dynamic-programming,Function,Recursion,Dynamic Programming,这个递归函数用于返回第一个大写索引号,在返回-1的字符串中找不到大写 但是,当我将没有任何大写字母的字符串传递给第一个参数时,我面临一个“***stack smashing detected***:terminated”错误 测试用例: 查找(“hello World”)->返回大写索引号为6 查找(“你好”)->***检测到堆栈崩溃***:终止 我没有发现这个错误为什么会发生,我在IDE中运行这个程序,它正确执行了 请帮我摆脱这个错误 谢谢 int find(char *str, int i)

这个递归函数用于返回第一个大写索引号,在返回-1的字符串中找不到大写

但是,当我将没有任何大写字母的字符串传递给第一个参数时,我面临一个“***stack smashing detected***:terminated”错误

测试用例:

  • 查找(“hello World”)->返回大写索引号为6
  • 查找(“你好”)->***检测到堆栈崩溃***:终止
  • 我没有发现这个错误为什么会发生,我在IDE中运行这个程序,它正确执行了

    请帮我摆脱这个错误

    谢谢

    int find(char *str, int i)
    {
        if (str[i] == '\0')
            return -1;
        if (str[i] >= 'A' && str[i] <= 'Z')
            return i + 1;
        return find(str, i + 1);
    }
    
    intfind(char*str,inti)
    {
    如果(str[i]='\0')
    返回-1;
    如果(str[i]>='A'&&str[i],这可能会帮助您: