C中的多维灵活数组初始化器

时间:2014-10-13 11:59:12

标签: c arrays

有没有办法用[]替换数组声明中的[5]?一切都是静态声明的,为什么它需要知道大小?

#include <stdio.h>

int main (int argc, char *argv[]) {
    int M[][5]={
        {0,  1, 2, 3, 4},
        {10,11,12,13,14},
        {20,21,22,23,24},
        {30,31,32,33,34},
    };

    int DimX=sizeof(M)/sizeof(M[0]);    // 4
    int DimY=sizeof(M[0])/sizeof(int);  // 5

    printf("Size: %d %d\n", DimX, DimY);
    return 0;
}

0 个答案:

没有答案