ページ 11

Javaでのfor文

Posted: 2009年6月14日(日) 17:44
by 肉9
Cだとダンジョン等の2次元配列を別の二次元配列に入れる時
問題はなったのですがJavaだとコンパイルに失敗してしまいます。
    int[/url][/url] MapArray;
	int[/url][/url] Map_01 = {
			{0,0,0,0,0},
			{0,1,2,1,0},
			{0,2,2,2,0},
			{0,1,2,1,0},
			{0,0,0,0,0}
	};
	
	for (int i = 0; i < 5; i++){     ←ここで型が~とエラーが出る
		for (int j = 0; j < 5; j++){
			MapArray[j] = Map_01[j];
		}
	}


なぜなんでしょうか・・・・・

Re:Javaでのfor文

Posted: 2009年6月14日(日) 19:41
by ねこ
ここってJavaもOKなんでしたっけ?

「型が~」じゃ分かんないんですが、構文上変な点は無いですし
それよりその先のメモリ確保してないMapArrayに変数入れてる方が変な気がします。

Re:Javaでのfor文

Posted: 2009年6月14日(日) 19:52
by nn
MapArray=new int[5][5];
をfor文の前に入れてみてはどうでしょうか?

Re:Javaでのfor文

Posted: 2009年6月14日(日) 19:57
by sizuma
>Javaも
C以外でも何でも気軽にオッケーみたいです

>メモリ確保していない
そのとおりですね。
newしないと使えないです。
javaでは
int[/url][/url] Map_01 = {

			{0,0,0,0,0},

			{0,1,2,1,0},

			{0,2,2,2,0},

			{0,1,2,1,0},

			{0,0,0,0,0}

};
も

int [/url][/url] Map_01 = new int[5][/url];
int [0] Map_01 = new int[5];
int [1] Map_01 = new int[5];
        :
        :
        :
を簡略化して書けてるものなので。

ループが配列のLengthを使ってないので、5*5が固定ならば、一番上のものを

int [/url][/url] MapArray = new int [5][5];
と書けば動くと思います
追記 
かぶりました;

Re:Javaでのfor文

Posted: 2009年6月14日(日) 20:16
by sizuma
というか先にメモリを確保してないから、Cでもコンパイルは通ってもオーバーフローする可能性があるんじゃないんでしょうか?