グローバル変数等で二次元配列を初期化する時に
int MapData[3][3] = {
{1,1,1},
{1,1,1},
{1,1,1}
}
の様にいつも書いております。
最近気がついたのですがこれをメイン関数内で初期化しようとすると
MapData[0][0] = 0のように一個ずつ書かないとエラーになってしまいます。
まとめて書く方法はないのでしょうか?
これでは出来ませんでした。
MapData[/url][/url] = {
~略
}
二次元配列の初期化
Re:二次元配列の初期化
関数内でも宣言時なら出来ますよ
int main(void) { int MapData[3][3] = { {1,1,1}, {1,1,1}, {1,1,1} }; return 0; }
Re:二次元配列の初期化
#include <iostream> using namespace std; int MapData[3][3]; int main() { const int data[3][3] = { { 1, 2, 3}, { 4, 5, 6}, { 7, 8, 9}, }; for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) MapData[j] = data[j]; for (int y = 0; y < 3; y++) { for (int x = 0; x < 3; x++) cout << MapData[x][y] << " "; cout << endl; } return 0; }
main関数で初期化したい理由が分かりませんが、
私が書くならこんな感じです。
マップデータということなので、代入時に添え字を入れ替えています。