吃饭不给钱送鱼小姐 2022-09-29 20:46 采纳率: 100%
浏览 36
已结题

验证回文串,报错溢出

验证回文字符串,提交报错是这样的:

img


不太清楚是为什么?


bool isPalindrome(char * s){
    char news[1000];
    int i=0,j=0,news_len;
    while(s[i]!='\n')
    {
        if(s[i]>='0'&&s[i]<='9'||s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
        {
            if(s[i]>='A'&&s[i]<='Z')
            {
                s[i]=s[i]+65;
            }
            news[j]=s[i];
            j++;
        }
        i++;
    }
    news_len=j;
    for(i=0,j=news_len-1;i<j;i++,j--)
    {
        if(news[i]!=news[j])
        {
            return false;
        }
    }
    return true;
}
  • 写回答

1条回答 默认 最新

  • Xiao Ice 2022-09-29 21:15
    关注

    感觉哈是你这个news数组不够大
    不知道题目是啥样的,这个长度要是你题目里的最大长度+1
    或者直接用下面这个~而且确定s是'\n'结尾的吗,会不会最后不是'\n',这些都有可能导致溢出。

    char* news = (char*)malloc(strlen(s) + 1);
    
    //要在return 之前free掉
    free(news);
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

    报告相同问题?

    问题事件

    • 系统已结题 10月13日
    • 已采纳回答 10月5日
    • 创建了问题 9月29日

    悬赏问题

    • ¥15 VB6.0中PICTUREBOX加载本地图片无法显示
    • ¥100 关于游戏app session获取的问题
    • ¥15 MYSQL数据库建表
    • ¥15 爬虫程序爬取TTGChina网站文章代码
    • ¥35 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
    • ¥15 如何用下图方法在AMESim中搭建离心泵模型
    • ¥15 C#连接服务器,请求时报Ssl/Tsl未能建立安全通道
    • ¥15 xcode15build的c++ dylib在10.15上不兼容
    • ¥15 CPLD如何实现在线逻辑分析
    • ¥15 控制面板卸载无权限!!