传递多维数组

Cla*_*bel 4 c c99

我知道对于一维数组,我可以做...

void g(int x[]) {}

void f(int a, int b)
{
    int x[a];
    g(x);
}
Run Code Online (Sandbox Code Playgroud)

但是使用代码如......

void f(int a, int b)
{
    int x[a][b][4];
    g(x);
}
Run Code Online (Sandbox Code Playgroud)

g(x)的类型签名是什么样的?

Pra*_*rav 5

void g(int x[][b][4]) // b must be known in advance
{}
Run Code Online (Sandbox Code Playgroud)

否则明确传递 b

例如:

void g(int b,int x[][b][4]){ 

} 

int main() 
{ 
    int a=4,b=6; 
    int x[a][b][4]; 
    g(b,x); 
    return 0; 
}
Run Code Online (Sandbox Code Playgroud)