C ++多维数组问题 - 多次打印条目

时间:2012-06-15 05:46:26

标签: c++ arrays

我有一个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]; } }

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

1 个答案:

答案 0 :(得分:4)

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 ++程序不再有效。