如何在C中传递2维数组?

zjf*_*fdu 1 c

可能的重复:
在C中将多维数组作为函数参数传递
将多维数组转换为c ++中的指针

嗨,

我尝试传递2维数组以在C中起作用,并且以下代码有效

 void printArray(int a[][4], int size) {
        int i = 0;
        for (; i < size; ++i) {
            int j = 0;
            for (; j < size; ++j) {
                printf("%d,", a[i][j]);
            }
            printf("\n");
        }
    }
Run Code Online (Sandbox Code Playgroud)

但如果我更换"int a[][4]",以"int **a" 它不会工作,任何人都可以告诉有什么区别?

谢谢

Oli*_*rth 9

必要的链接:http://c-faq.com/aryptr/pass2dary.html.你需要知道的一切都应该在那里; 我不打算在这里写出来......