Feerの日記

2005-08-18構造体って

難しいというか、どういう風に扱えばいいのか分からない。

形を定義して、その後名前をつけていくっていうのは分かるんだけど

そこに変数を代入する時点で弾かれてしまう…。

struct hoge

{

  int a;

  int b[10];

}hoge

 

struct hoge unya[10];

 

配列型構造体として定義する所までは通るんだけど

 

unya[1].b[10]={1,1,1,1,1,1,1,1,1,1};

 

とか、値を代入しようとするとunyaと[の間の所でコンパイルが止まっちゃうT-T

 

そもそも扱い方が間違ってるんだろかなぁ。

alg-ljalg-lj2005/08/18 23:08構造体内の配列?に値を一度に入れるには、初期化時でないとダメ、というのをどこかで見た気がします。
つまり、最初のunyaの宣言のときに値を入れるなら可能ということです。
具体的には、
struct hoge unya[10]={
0,{0,1,2,3,4,5,6,7,8,9},
(中略)
9,{0,1,2,3,4,5,6,7,8,9}
};
と書けば通るみたいです。
宣言時に初期化したくない場合は、冗長ですが
struct hoge unya[10];
unya[1].b[0]=0;
(中略)
unya[1].b[9]=9;
というふうにやるしかないかもしれません。

FeerFeer2005/08/20 09:18なるほど。
0,{0,0,0,0,0,0}で定義するんですね。
struct hoge[1].unya[10]={0,0,0,0,0...};
として弾かれてました…^^;