C++ でサブ配列のように動作するポインターを作成する方法はありますか? thisの答えと同じです が、2次元です。より具体的に私はしたいです
int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
int subarr ** = arr[1][1];
そのようなsubarr[0][0] == 5
いいえ、これは不可能です。あなたの例では、配列は連続メモリに存在しないため、配列の添え字で適切にアクセスできません。
subarr
に が含まれていると予想されると思います{{5,6},{8,9}}
。
arr
次のようにメモリに表示されます ( | は視覚化専用です)。
| | 1 2 3 | 4 5 6 | 7 8 9 |
subarr
配列添え字演算子の次元による乗算とオフセットの追加アプローチでは達成できない特定の要素を選択しようとしています。
1 2 3 4 5 6 7 8 9
^ ^ ^ ^
int の配列ではありません (int の 2D 配列は依然として int の配列です)。int 配列へのポインターの配列がある場合は、はい。そうすれば、質問は理にかなっていて、答えは明らかです。