関数のシグネチャは次のようになります。
void getPossibilities(int (*rating)[3]);
引数を次のように渡します。
getPossibilities(rating);
変数は、形式の型に崩壊できるrating
形式の 2 次元配列です。だから私はそれがあなたが望むすべてだと思います。T[M][N]
T(*)[N]
上記のソリューションのように、配列は減衰し、1 つの次元のサイズが失われます (N
確実に知っている関数でM
は、配列の減衰による損失だけです)。そのため、関数のシグネチャを変更して減衰を回避する必要があります。配列:
void getPossibilities(int (&rating)[200][3]) //note : &, 200, 3
{
//your code
}
//pass argument as before
getPossibilities(rating); //same as above
さらに良いのは、テンプレートを次のように使用することです。
template<size_t M, size_t N>
void getPossibilities(int (&rating)[M][N])
{
//you can use M and N here
//for example
for(size_t i = 0 ; i < M ; ++i)
{
for(size_t j = 0 ; j < N ; ++j)
{
//use rating[i][j]
}
}
}
この関数を使用するには、前と同じように引数を渡す必要があります。
getPossibilities(rating); //same as before!