2 D配列の一般的な呼び出し方法について


ここ数回の開発で2次元配列をパラメータとして使用したのは呼び出し中の古いグラフィックスシェルで、いくつかの一般的な呼び出しモードモード(コードから体得しましょう)を整理しました!
正しい応用モード1:
void func1(int iArray[ ][10])
{

}

int main()
{
    int array[10][10];
    func1(array);

}

正しい適用モード2(パラメータとして1次元配列ポインタを適用):
void func2(int (*pArray)[10]) //[10]    
{

}

void func2_1(int (*pArray)[ ]) //   
{

}

int main()
{
    int array[10][10];
    func2(array);
}

実は2次元配列名は1次元配列を指すポインタなので、この宣言方式はOKです.1次元配列の長さを指定する必要があります.指定しない場合は、関数宣言コンパイルが通過します.しかし、呼び出しコードがあると、実パラメータタイプがint[]に一致しないため、コンパイルは通過しない.
正しい適用モード3(パラメータとして2 D配列参照を適用)
void func3(int (&pArray)[10][10])//          
{

}

int main()
{
    int array[10][10];
    func3(array);
}

2つの次元の長さを指定する必要があります
正しい適用モード4(パラメータとして2 Dポインタ配列を適用):
void func4(int (*pArray)[10][10])//        
{

}

int main()
{
    int array[10][10];
    func4(&array);

}
は、2つの次元の長さを指定する必要があります.
注意:以上の4つの方法は共通していますが、配列が伝達される場合は、値のみが伝達され、伝達パラメータは変更されません(個人は前の2つしか使用されません)