アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトル通りです。やり方がわかりません。
構造体変数の初期化や多次元配列の初期化が載ってるページは多いのですが、コレだけは調べても解りませんでした。

typedef struct{
int flag;
~~~~~(略)~~~
}map_t;
map_t map[64][64];

の後、map_t型のmap64*64の int flag全てに値を代入したいのですが
詳しいやり方が解りません。
int hensuu[3][3]={
  {1,2,3},{4,5,6},{7,8,9}
};

普通の多次元配列みたいにmこんな感じでやりたいんですけど…

初心者でスミマセン。回答いただけたらありがたいです。

A 回答 (2件)

構造体の特定メンバだけを初期化するのであれば繰り返し処理(for文など)を使うしかないと思います。


for(int i=0;i<64;i++){
for(int j=0;j<64;j++){
map[i][j].flag=xx;
}
}
などです。

全てのメンバを初期化するのなら以下のプログラムをコピペして実行するとヒントになると思います。
#include <stdio.h>
void main(){
struct aaa{
int x;
int y;
}map[2][2]={
1,2,3,4,5,6,7,8
};
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
printf("map[%d]{%d].x=%d\n",i,j,map[i][j].x);
printf("map[%d]{%d].y=%d\n",i,j,map[i][j].y);
}
}
}
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2009/11/16 00:55

構造体の最初のメンバがflagであれば、



map_t map[64][64] = {
{ { 1 }, { 2 }, { 3 }, ... },
...
};

のようにすれば初期化できます。
そうでなければ、

map_t map[64][64] = {
{ { .flag = 1 }, { .flag = 2 }, { .flag = 3 }, ... },
...
};

としてください。

> int flag全てに値を代入したいのですが

代入でよいのであれば、ループを使ったほうが楽です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2009/11/16 00:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!