11

このような配列を作成しましたが、初期化子が多すぎると表示され続けます。このエラーを修正するにはどうすればよいですか?

        int people[6][9] = {{0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0},
                        {0,0,0,0,0,0}};
4

3 に答える 3

10

ここでの問題は、配列宣言部分で行/列のインデックスが交換されているため、コンパイラが混乱していることです。

通常、多次元配列を宣言する場合、最初のインデックスは行用で、2番目は列用です。

このフォームはそれを修正する必要があります:

   int people[9][6] = {{0,0,0,0,0,0},
                    {0,0,0,0,0,0},
                    {0,0,0,0,0,0},
                    {0,0,0,0,0,0},
                    {0,0,0,0,0,0},
                    {0,0,0,0,0,0},
                    {0,0,0,0,0,0},
                    {0,0,0,0,0,0},
                    {0,0,0,0,0,0}};
于 2012-09-09T01:09:21.250 に答える
7
int people[6][9] =
{
    {0,0,0,0,0,0,0,0,0},
    {0,0,0,0,0,0,0,0,0},
    {0,0,0,0,0,0,0,0,0},
    {0,0,0,0,0,0,0,0,0},
    {0,0,0,0,0,0,0,0,0},
    {0,0,0,0,0,0,0,0,0},
};

Cの配列は、行、列の順になっているため、定義した配列の初期化子には、6つの整数の9行ではなく、9つの整数の6つの行があります。

于 2012-09-09T01:26:23.217 に答える
3

インデックスに6と9を混在させました。

于 2012-09-09T01:10:39.950 に答える