mainメソッドで参照として宣言された配列を関数のパラメータとして渡すにはどうすればよいですか?また、コンパイラはdimentionsを望んでいるが、私は、変数とそれらを与えるとき、コンパイラは配列の無効な整数寸法の誤差を与え、ここでのコードは次のとおりです。C++の関数パラメータとして参照渡し配列を渡す
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int scanV(int Row, int value, int M, int (&tableValues)[])
{
for (int i = 0; i <= M; ++i)
{
if (tableValues[Row - 1][i] == 1)
{
if (i + value <= M)
{
tableValues[Row][i+value] == 1;
}
if (i - value >= 0)
{
tableValues[Row][i-value] = 1;
}
}
}
}
int main()
{
int C, B, M;
cin>>C;
int integers[C];
for (int i = 1; i < C; ++i)
{
cin>>integers[i];
}
cin>>B;
cin>>M;
integers[0] = B;
int tableValues[C][M + 1];
tableValues[0][B] = 1;
for (int i = 1; i < C; ++i)
{
scanV(i, integers[i], M, tableValues);
}
return 0;
}
'のstd ::で簡単vector':'ベクトル&tableValues'はあなたのパラメータになります。 –
chris
tableValuesパラメータは、intの配列への参照ではなく、intの配列の配列への参照であるため、tableValues [x] [y]を実行することはできず、intの配列の配列に渡すこともできません。コードには他にもさまざまな問題があります。たとえば、Cがコンパイル時定数(明らかにここにはありません)でない限り、 "int int [C]"を実行することはできません。 – abarnert
OK、しかし、私はそれを使用すると、 "if(tableValues [Row - 1] [i] == 1)"というエラーが10行目に表示され、配列に "invalid types 'int [int]下付き文字| "他の行には多くのものがあります – user1113314