以下の何が間違っていますか
int data[2][2] = { {1,1}, {2,2}};
int sum = sum(data, 2);
合計は次のように定義されます
int sum(int **data, int rows);
data には のアドレスが含まれているdata[0]
ため、ポインターとして扱うことができます。これ*data
は type の別の配列ですint
。この別の配列は、最初の要素へのポインタとして扱われるべきです。したがって、コンパイラは int の引数で文句を言うのはなぜ**data
ですか?
以下に示すように、コンパイルエラーが発生します。私はエラーを理解していますが、私の質問は、なぜ**data
受け入れられないのかということです.
error: cannot convert int (*)[2] to int** for argument 1 to int sum(int**, int)