- ベストアンサー
配列の配列の入れ替え処理(C/C++)
int a[5][2]とすると a[0][0] : 0 a[0][1] : 1 a[1][1] : 2 a[1][1] : 3 a[2][0] : 4 a[2][1] : 5 a[3][0] : 6 a[3][1] : 7 a[4][0] : 8 a[4][1] : 9 こういう形で領域が確保されるはずですが、この配列同士の入れ替えで困っています。 例えば、a[0]とa[4]を交換して a[0][0] : 8 a[0][1] : 9 a[1][1] : 2 a[1][1] : 3 a[2][0] : 4 a[2][1] : 5 a[3][0] : 6 a[3][1] : 7 a[4][0] : 0 a[4][1] : 1 となるようにしたいのです。 普通はスワップするときにテンポラリとして値を保持する物を確保しておくのですが、型がわからず困っています。 普通にint型どうしの入れ替えなら int tmp,a,b; tmp = a; a = b; b = a; とすれば良いのですが、上の配列の配列どうしの入れ替えでどう書けばいいかよくわかりません。自分で書くと「型が違うよ」と怒られてしまいました。 どう書けば入れ替えできるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- Tasuke22
- ベストアンサー率33% (1799/5383)
回答No.1
お礼
........ああ、確かに妙な勘違いをしているようですね....... 少し頭を整理してきます。
補足
int tmp,a,bの話は、配列でないint型のもの同士の入れ替えの話で、配列の話とは関係ありません。同じaが出てきてややこしいですが、配列のaとは全く関係有りません。読みにくくて申し訳ないですが....... int temp,a,b; temp = a ; a = b ; b = temp ; と書けばaとbの値は入れ替わりますが、配列の配列ではどうやるんだろうかという質問でした。 int a[5][2]と書くとa[0]にはa[0][0]へのポインタが入っているようですが.....