2 次元配列を受け取り、その行の 1 つ ('which') を単純な配列として返す関数を作成したいと思います。私はこれを書きました:
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 行目で次のエラーが発生しました。無効な型 'int[int]' for array subscript. これを適切に行う方法はありますか?また、2D 配列を配列の配列として処理しようとしましたが、成功しませんでした。私は初心者なので、高度すぎる概念は避けてください。
助けてくれてありがとう!
更新: 助けてくれてありがとう! 今私のコードは次のようになります:
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);
}
メインでまだエラーが発生します: 'int*' から 'int [100]' への割り当てに互換性のない型があります
今、何が問題になっているのでしょうか? また、delete[] 関数を使用して配列を解放する場所もわかりません。
助けてくれてどうもありがとう!