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

C++ Multi Dimensional Array Problems - Entries printed more than once

本文关键字:打印 问题 数组 C++      更新时间:2023-10-16

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

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

char map[15][80];

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

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

有效索引仅在第一种情况下
014 0在第二种情况下79

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