If I want to define a function which has a argument is a multidimension array, such as:

int f(data[][], int N)
{
...
}

void main()
{
int p[3][3]={...};
int a=f(a,3)
}

When compiled, there is a error, but if I define f as
int f(data[][3], int N)
{
...
}

that's ok. If there are any other mothod to solve the problem, since the second dimension of the array may not be decided. Thanks!