首页 > 解决方案 > 检测到堆栈粉碎(未知)

问题描述

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

但是当我将第一个参数传递给没有任何大写字母的字符串时,我面临“***堆栈粉碎检测到***:终止”错误。

测试用例:

  1. find("hello World") -> 返回大写索引号为 6
  2. find("hello hello hello")-> *** 检测到堆栈粉碎 ***: 已终止

我没有找到为什么会发生这个错误,我在我的 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);
}

标签: functionrecursiondynamic-programming

解决方案


推荐阅读