4

サイズが不明な多次元配列を関数に渡そうとしましたが、これまでのところ、配列が宣言されたときの次元は変数です。

double a[b][b];

私が知る限り、関数を宣言するときにbの値を指定する必要があります。aは不明である可能性があります。bをグローバル変数として宣言しようとしましたが、定数でなければならないと表示されます。

すなわち:

int b;

double myfunction(array[][b])
{
}

int main()
{
int a;
double c;
double myarray[a][b];

c=myfunction(myarray);

return 0;
}

これを機能させる方法はありますか?

4

4 に答える 4

4

値渡し:

double myfunction(double (*array)[b]) // you still need to tell b

参照を渡す:

double myfunction(int (&myarray)[a][b]); // you still need to tell a and b

テンプレートの方法:

template<int a, int b> double myfunction(int (&myarray)[a][b]); // auto deduction
于 2012-07-25T17:44:29.613 に答える
1

おそらく、C++ と配列に関するいくつかのリファレンスを読むと役立つでしょう。

http://en.cppreference.com/w/cpp/container/array

于 2012-07-25T17:37:49.810 に答える
-1
void procedure (int myarray[][3][4])

詳細はこちら

于 2012-07-25T17:36:21.897 に答える