c++编程遇到的问题,求大佬解答

那边 14天前 11

#include<iostream>
#include<string>
using namespace std;
int main()
{
         string c="ktbueluegvitnthuexmonveggmrcgxptlyhhjaogchoemqchpdnetxupbqntietiabpsmaoncnwvoutiugtagmmqsxtvxaoniiogtagmbpsmtuvvihpstpdvcrxhokvhxotawswquunewcgxptlcrxtevtubvewcnwwsxfsnptswtagakvoyyak";
        int num[30];  //存储repeat;
        
        int max = 10;   //跳过的个数
        int repeat = 0;  //移位相同字母的个数
        
        
               
                for (int j = 0; j < 183; j++)
                {
                        
                        cout << c[j];
                        
                        num[j] = repeat;
                }
               
        
}
就在循环第34次读取string字符串时,内存读取错误。这数组也没越界呀!
最新回复 (5)
  • future001 14天前
    引用 2
    确定num没越界吗,你把num注释掉看看
  • 楼主 那边 14天前
    引用 3
    future001 发表于 2020-9-11 12:13
    确定num没越界吗,你把num注释掉看看

    注释过了的,单独读取c中任何一个字符都行,循环读取就不行。
  • gchq2005 14天前
    引用 4
    那边 发表于 2020-9-11 12:29
    注释过了的,单独读取c中任何一个字符都行,循环读取就不行。


    把 num 组数改成 300  ,一切正常,,你跟我说 num 没问题
  • TTTii 14天前
    引用 5
    你定义的num[30],你  j>30 就越界了。
  • 张傻子 14天前
    引用 6
    你的num越界了啊!
  • 游客
    7
返回