数组初始值设定项中的编译 Warning.Excess 个元素

Compilation Warning.Excess elements in array initializer

我正在实现一个多维数组并使用指针并测试地址 allotment.Even 的正确性,尽管程序 运行 非常完美并且所有地址都与我 expected.But 相同是编译警告 [Warning] excess elements in array initializer。任何人都可以解释下面的 warning.The 代码....

#include<stdio.h>
    int main(){
    int c[3][2][2] = {{{2,5},{7,9},{3,4},{6,1},{0,8},{11,13}}};
    printf("%d %d %d %d",c,*c,c[0],&c[0][0]);
    return 0;
}

错误总结是这样的

        In function 'main':
3   2   [Warning] excess elements in array initializer
3   2   [Warning] (near initialization for 'c[0]')
3   2   [Warning] excess elements in array initializer
3   2   [Warning] (near initialization for 'c[0]')
3   2   [Warning] excess elements in array initializer
3   2   [Warning] (near initialization for 'c[0]')
3   2   [Warning] excess elements in array initializer
3   2   [Warning] (near initialization for 'c[0]')

那不是三维数组。你忘了带牙套!

int c[3][2][2] = {{{2,5},{7,9}},{{3,4},{6,1}},{{0,8},{11,13}}};

也许重新格式化以使其更清晰:

int c[3][2][2] = {
    { {2,5}, {7,9} }, 
    { {3,4}, {6,1} },
    { {0,8}, {11,13} }
};

你有三对一对int。初始化应该是:

int c[3][2][2] = {{{2,5},{7,9}},{{3,4},{6,1}},{{0,8},{11,13}}};
      3                 ^             ^             ^
         2           ^     ^
            2       ^ ^