【问题标题】:C++ Multi Dimensional Array Problems - Entries printed more than onceC++ 多维数组问题 - 多次打印的条目
【发布时间】:2012-06-15 05:46:26
【问题描述】:

我有一个 15x20 的数组,我想更改每个条目的值,然后将它们全部计算出来。

char map[15][80];

这是我计算所有条目的代码。

for (int a=0;a<=15;a++) {
              for (int b=0;b<=80;b++) {
                  map[a][b] = 'a';
                  cout << map[a][b]; } }

如果我将字母表放入数组中,就会出现问题,它会多次打印某个字母。

【问题讨论】:

    标签: c++ arrays


    【解决方案1】:
    char map[15][80];
    

    您的 for 循环正在读取您分配的数组之外的一个元素。

    for (int a=0;a<=15;a++) 
                 ^^^^^
    
    for (int b=0;b<=80;b++)
                 ^^^^^
    

    在第一种情况下,有效索引仅从 014 &
    在第二种情况下,从079

    请注意,C/C++ 不会为您进行数组边界检查,因此您必须小心不要超出数组的边界,如果这样做,您会得到 未定义的行为 ,这意味着您的 C/C++ 程序不再有效。

    【讨论】:

    • 天哪,这几乎看不出来。很好的收获。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多