NK_JJ 2021-11-25 17:26 采纳率: 100%
浏览 877
已结题

无效参数传递给了将无效参数视为严重错误的函数

请问各位,这是怎么回事啊
摸不清头脑,i+j为啥是无效参数啊?

#include<iostream>
using namespace std;
int a[100];
void find(string ,string );
int main() {
    string word;
    string substr;
    cin >>word>> substr;
    find(word, substr);
}
void find(string word,string substr) {
    for (int i = 0; i < word.size(); i++) {
        for (int j = 0; j < substr.size(); j++) {
                if (word[i+j] == substr[i + j])a[i]++;
        }
        if (a[i] == substr.size())cout << i;
    }
}

img

img

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-25 17:28
    关注

    至少你a数组没有初始化为0 ,a[i]++是不行的
    你这个word[i+j]和substr[i + j]没有道理啊,怎么能保证word的长度能够大于i+j呢?如果小于,那你就是越界访问字符串了啊
    应该是word[i] == substr[j]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月25日

悬赏问题

  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开
  • ¥30 crossover21 ARM64版本安装软件问题
  • ¥15 mymetaobjecthandler没有进入
  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错