This question already has an answer here:
Subscripts going out of range in an array
(1个答案)
2年前关闭。
我有这个代码
但是当我编译它时,输出看起来像这样
-1,-1和1分别从哪里来呢?
这样,您实际上将为4(0,1,2,3)行和4列分配足够的空间。
(1个答案)
2年前关闭。
我有这个代码
#include<stdio.h>
#include<conio.h>
#define MAXCOL 3
#define MAXROW 3
typedef struct {
int arr[MAXCOL][MAXROW];
}GAME;
void createGame(GAME *G){
int i, j;
for(i=0; i<=MAXCOL; i++){
for(j=0; j<=MAXROW; j++){
(*G).arr[i][j] = 0;
}
}
}
但是当我编译它时,输出看起来像这样
[0][0][0][0]
[0][0][0][0]
[0][0][0][-1]
[-1][1][0][0]
-1,-1和1分别从哪里来呢?
最佳答案
如果可以相信名称MAXCOL和MAXROW(您想要第3列和第3行),则可以通过执行以下操作来修复它:
typedef struct {
int arr[MAXCOL+1][MAXROW+1];
}GAME;
这样,您实际上将为4(0,1,2,3)行和4列分配足够的空间。
关于c - 输入值以在c中堆叠2维,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50187131/
10-13 05:03