我的 C 二维数组有问题。假设二维数组是 board[d][d]
(d=7
),我想分配将 board[d-1][d-2]
的值转换为 int
。当我这样做时,我收到错误,如果我 printf board[d-1][d-2]
我得到 32766
。数组中的最高值为d*d-1=48
。
我做错了什么?
int main(void)
{
int d=7;
int nr=(d*d)-1;
int board[d][d];
int u=board[d-1][d-2];
bool even=false;
if ((d/2)*2!=d)
{
even=true;
}
printf("%d\n", even);
printf("%i\n", board[d-1][d-2]); //result here is 32764?
for(int i=0;i<d;i++)
{
for(int j=0;j<d;j++)
{
board[i][j]=nr;
nr--;
printf(" %2d", board[i][j]);
}
printf("\n");
}
return 0;
}
最佳答案
这是因为你没有用任何值初始化它,所以它只是将内存 atm 中发生的任何垃圾存储起来。 您需要在船上运行并为其设置初始值。
关于c - 如何在C中访问二维数组值并将值赋给int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075192/