C言語関係掲示板

過去ログ

No.300.二次元配列のメモリ上の格納位置

[戻る] [ホームページ]

No.1801

二次元配列のメモリ上の格納位置
投稿者---sutoresu(2002/06/25 09:32:27)


二次元配列を定義したとき中身はメモリ上に連続して並んでいるのですか?
char a[2][2]
a[0][0]
a[0][1]
a[1][0]
a[1][1]
のように参考書には連続されてるとは限らないと書かれているのですがそれだったらポインタを用いてアクセス出来ないと思うのですが。

No.1813

Re:二次元配列のメモリ上の格納位置
投稿者---TOM(2002/06/26 00:10:51)


>二次元配列を定義したとき中身はメモリ上に連続して並んでいるのですか?

連続して並んでます。
詳しくは第九章に載ってありましたが、
char型の場合1バイト×配列の要素分がメモリ上に格納されています。


No.1815

Re:二次元配列のメモリ上の格納位置
投稿者---Aki(2002/06/26 01:38:40)


>二次元配列を定義したとき中身はメモリ上に連続して並んでいるのですか?
並んでいます。

二次元配列というのは配列の配列にすぎません。例えば、

int a[5][3];

と宣言した配列aは要素数が5の配列です。そしてこの配列の
要素は(たまたま)"要素数が3のint型の配列" です。

配列は要素が連続して並んだものですから、この例の(配列の)配列は、
"int型の要素が3つ連続して並んだもの"が5つ連続して並んだもの、
すなわち、3×5個の要素が連続して並んだものということになります。