Date: Tue, 22 Dec 98 14:50:21 JST From: SHUDOH Kazuyuki Subject: [JavaHouse-Brewers:22148] Re: =?ISO-2022-JP?B?GyRCTnMkTiUzJVQhPCRPJEAkYSRKJHMkRyQ3JGckJiQrISkbKEI=?= To: java-house-brewers at java-house.etl.go.jp (JavaHouse Brewers ML) Message-Id: <199812220545.OAA13965@cafe.muraoka.info.waseda.ac.jp> 首藤です。 山根さん wrote: > コンピュータ上のメモリ空間って結局は長大な一次元配列でしかないんです。 > だから > int[3][3]ってメモリを確保した場合 > +------+------+------+------+------+------+------+------+------+ > |[0][0]|[0][1]|[0][2]|[1][0]|[1][1]|[1][2]|[2][0]|[2][2]|[2][3]| > +------+------+------+------+------+------+------+------+------+ > てな具合で取られると思うんですよ。 C, C++ などではその通りなのですが… 少なくとも Sun の Java仮想マシン (JDK, JRE) では、 上図のようには allocate されないんです。 native method を書いてアドレスを調べるなどすればわかるかと思います。 #JDK のソースを読まずとも。:) int[3][3] と確保した場合、下図のように確保されます。 +-----------+------+------+ |(1)への参照|(2)...|(3)...| +-----------+------+------+ (1)+------+------+------+ |[0][0]|[0][1]|[0][2]| +------+------+------+ (2)+------+------+------+ |[1][0]|[1][1]|[1][2]| +------+------+------+ (3)+------+------+------+ |[2][0]|[2][1]|[2][2]| +------+------+------+ SHUDO Kazuyuki/首藤一幸 私をたばねないで あらせいとうの花のように shudoh at muraoka.info.waseda.ac.jp