2011-09-09 15 views
-1

構造体内の構造体にアクセスしたいのですが、どのように知っていますか?struct in struct in struct

EDIT:

typedef struct{ 
    int a, b; 
} struct_1; 

typedef struct{ 
    int c; 
    struct_1 exemple; 
} struct_2; 
struct_2 Table[100]; 

ここで例えば、私が表に値を割り当てる[0]

.exemple.aありがとうございます。 EDIT:すごいなdumbaイムは...時にはそれは私がちょうど6エントリはので、私はちょうど印刷にとにかく

+0

'テーブル[0] .exemple.a =値;何かがありませんか? –

+0

私はちょうど質問を編集しました – Glove

答えて

3

まさにあなたのような感謝をルックアップするために持っていたのに対し、私の印刷は100回を印刷しただけのことを働いIITSました例:

Table[0].exemple.a = 12; 

私はあなたの問題はexempleはあなたの例ではstruct_2、あなたが意図した表示されたようではないstruct_1であるということだと思います。 (修正されたスペルで)サイズのためにこれを試着:あなたはあなたがそうのように探しているものに達するまで、プロパティにアクセスするには、引き続き、ネストされた構造体で

typedef struct{ 
    int a, b; 
} struct_1; 

typedef struct{ 
    int c; 
    struct_1 example; 
} struct_2; 
struct_1 Table[100]; 
+0

ああ申し訳ありません私はちょうどexempleを編集しました – Glove

0

Table[0].example.a = 5; 
Table[0].example.b = 10; 
0

私はあなたがおそらく意味だと思います:

typedef struct{ 
    int c; 
    struct_1 exemple; /* see how it's struct_1 */ 
} struct_2; 

なく

typedef struct{ 
    int c; 
    struct_2 exemple; 
} struct_2; 

struct_2にはaフィールドがありません。

この後、Table[0].exemple.a = 5が機能します。

0

struct_2の宣言が間違っています。 struct_2 exemple;struct_1 exemple;に置き換えてください。構造体内のデータにアクセスするには、ポインタを使用している場合は.演算子または->演算子を使用します。