复习二维数组教程。教程说不需要在二维数组中定义行。他们的代码运行良好;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;
}
编译器错误试图告诉您,由于无法初始化可变大小的数组,因此需要提供两个数组边界,然后在数组声明后填充数组。