Possible Duplicate:
How do I use arrays in C++?
One dimensional array as a function parameter:
#include <stdio.h>
#include <string.h>
int func(int a[], int n)
{
    int i;
    for(i = 0; i < n; i++)
        printf("%d ", a[i][j]);
}
int main(void)
{   
    int a[2] = {1,2};
    func(a, 2);
}
it compiles and runs correctly.
But when a two-dimensional array as a function parameter:
#include <stdio.h>
#include <string.h>
int func(int a[][], int n)
{
    int i, j;
    for(i = 0; i < n; i++)
        for(j = 0 ; j < n; j++)
            printf("%d ", a[i][j]);
        printf("\n");
}
int main(void)
{   
    int a[2][2] = {{1,2}, {3,4}};
    func(a, 2);
}
it can not compile correctly. I must modify the code like this:
#include <stdio.h>
#include <string.h>
int func(int a[][2], int n)
{
    int i, j;
    for(i = 0; i < n; i++)
        for(j = 0 ; j < n; j++)
            printf("%d ", a[i][j]);
        printf("\n");
}
int main(void)
{   
    int a[2][2] = {{1,2}, {3,4}};
    func(a, 2);
}
I do not know why? Anybody can explain how it works? Many thanks.
 
     
     
     
     
     
    