2次元配列を受け取り、その行の1つ( ')'を単純な配列として返す関数を作成したいと考えています。配列の添字は「int型[INT]」無効なタイプを:2次元配列から行または列を抽出するC++
int *row(int *array, int lines, int columns, int which)
{
int result[columns];
for (int i=0; i<columns; i++)
{
result[i] = *array[which][i];
}
return result;
}
しかし、7行目で、私は次のエラーを得た:私はこれを書きました。どのようにこれを正しく行うにはどのようなアイデア?私はまた、配列の配列として2D配列を扱おうとしましたが、成功しませんでした。私は初心者ですので、あまりにも高度な概念を避けてください。
ありがとうございました!
更新:ありがとうございました!今問題になる可能性が何のint [100] '
に「int型*」の割り当てに互換性のない型:
int n; //rows
int m; //columns
int data[100][100];
int array[100];
int *row(int *array, int rows, int columns, int which)
{
int* result = new int[columns];
for (int i=0; i<columns; i++)
{
result[i] = *array[which*columns+i];
}
return result;
delete[] result;
}
int main()
{
array=row(data, n, m, 0);
}
私はまだメインでエラーが発生します。今私のコードは次のようになりますか?私はまた、配列を解放するためにどこにdelete []関数を使うべきかわかりません。
ありがとうございました!
2次元配列を渡すには、配列パラメーターが 'int **'である必要があります。そうでない場合は、1次元配列を渡しています。 –