可能性の重複:
May I treat a 2D array as a contiguous 1D array?二次元配列にアクセスするのは正当なものですか?
次のコードを考えてみましょう:
int array2d[10][10];
int *array1d = array2d[0];
を私はそれが動作しない実装のことを聞いたことはありませんが、それはへの法的ですアクセスして操作しますarray2d
経由でarray1d
?規格のどの部分でこれが可能ですか?標準では、実装が2番目のレベルの配列のそれぞれの間に余分なスペースやパディングを挿入するのを防ぐことはできますか?
ボーナスの質問array2d
にアクセスする方法はありますかint[100]
reinterpret_cast
またはCスタイルのものは必要ありませんか?
これは、内部的に1次元配列として格納するクラスにはいつでもラップできます。 – chris
C++難読化コンテストにサインアップしました:)? – ScarletAmaranth
'int * array1d = array2d [0];'もう少し簡単ですか? – ildjarn