首页 > 解决方案 > 带有 C 的多维数组 - 变量未初始化

问题描述

我正在尝试为学生成绩做一个简单的二维数组,但它一直给我一个“变量未初始化”的错误。

#include <stdio.h>

int main()
{
    int const rows = 3;
    int const columns = 4;

    int studentsGrades[rows][columns] = {
        {1, 3, 4, 6},
        {3, 2, 4, 5},
        {32, 2, 4, 9}
        };

    return 0;
}

标签: arrayscvariablesmultidimensional-arraymultiple-columns

解决方案


在 C 语言中,不允许将初始化程序与 VLA 一起使用(您可以查看 C99 标准)。您可以使用memset, 或#define您的数组大小。

这有效:

#include <stdio.h>

#define rows 3
#define columns 4

int main(void)
{
    int studentsGrades[rows][columns] = {
        {1, 3, 4, 6},
        {3, 2, 4, 5},
        {32, 2, 4, 9}
        };

    return 0;
}

您可能还想查看这篇文章。


推荐阅读