C, ++. :
char *x[];
char (*y)[];
, . :
char **x;
char (*y)[];
C, . (, ). ,
int valid_array[][5]; // Ok
int invalid_array[5][]; // Wrong
( ... ...)
int (*convoluted_array[][5])[][10];
catch,, catch , [] . , , . , :
void func(int (*x)[])
{
x[2][5] = 900;
}
, x[2] , x[0] x[1]. x[0] x[1] int [] - , . , , "" , int x[][] - . C. C,
.
void func(int n, int x[])
{
x[2*n + 5] = 900;
}
. , 2D-.
void func(int *x[])
{
x[2][5] = 900;
}
.
void func(int x[][5])
{
x[2][5] = 900;
}
( C99, , , Microsoft).
void func(int n, int x[][n])
{
x[2][5] = 900;
}
. " " , , (++, Java, Python), (Common Lisp, Haskell, Fortran). , .