c - 如何在C中访问二维数组值并将值赋给int

标签 c arrays multidimensional-array

我的 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/

相关文章:

python - 数组中数字的绝对差之和

c++ - 存储二维对象数组的最佳方法是什么?

php - 在mysql插入查询中使用数组

PHP 不敏感多重排序

c - mkdir() 和 "Time of Check, Time of Use"漏洞

c++ - 使用 C/C++ 将后缀/前缀表达式显示为解析树

c - C 中的 time(NULL) 是什么?

c - If Thens 比乘法和赋值更快吗?

java - 如何在名称组中首先按字母顺序然后按年龄对字符串(包含名称和年龄)进行排序

arrays - 如何在bash中创建列表(或类似列表)数组?