我有一个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]; } }
如果我将字母表放入数组中会出现问题,它会多次打印某个字母。
答案 0 :(得分:4)
char map[15][80];
你的for循环正在读取你分配的数组之后的一个元素。
for (int a=0;a<=15;a++)
^^^^^
for (int b=0;b<=80;b++)
^^^^^
在第一种情况下,有效索引仅从0
到14
第二种情况0
至79
。
请注意,C / C ++不会为你做数组边界检查,所以你必须要小心不要超出数组的范围,如果这样做你得到的是未定义的行为 ,这意味着您的C / C ++程序不再有效。