2

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

4

2 に答える 2

1

いいえ、これは不可能です。あなたの例では、配列は連続メモリに存在しないため、配列の添え字で適切にアクセスできません。

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
        ^ ^   ^ ^      
于 2013-08-15T09:18:14.143 に答える
0

int の配列ではありません (int の 2D 配列は依然として int の配列です)。int 配列へのポインターの配列がある場合は、はい。そうすれば、質問は理にかなっていて、答えは明らかです。

于 2013-08-15T09:20:39.123 に答える