为什么我会收到错误"'成绩'中缺少尺寸。当行显然不需要声明时?

  • 本文关键字:声明 不需要 成绩 错误 arrays c row
  • 更新时间 :
  • 英文 :


复习二维数组教程。教程说不需要在二维数组中定义行。他们的代码运行良好;89〃;正如预期的那样。Mine抱怨等级[][列]缺少尺寸

有什么想法吗?


int main () 
{
int const columns = 3;
int grades[][columns] = {
{12, 23, 45},
{64, 78, 89}
};
printf("%d", grades[1][2]);
return 0;
}```


Output: error: array size missing in 'grades'
8 |     int grades[][columns] = {

编译器错误与空括号无关,问题出在columns上。不能初始化由变量大小决定的数组(这些数组称为可变长度数组,简称VLA(。

这会很好,例如:

#define COLUMNS 3
int main () 
{
int grades[][COLUMNS] = {
{12, 23, 45},
{64, 78, 89}
};
printf("%d", grades[1][2]);
return 0;
}

编译器错误试图告诉您,由于无法初始化可变大小的数组,因此需要提供两个数组边界,然后在数组声明后填充数组。

相关内容

  • 没有找到相关文章

最新更新