2009-11-28 13 views
5

その構造体の型を指すポインタを持つ構造体を定義するのは可能でしょうか?私が意味することは:自己へのポインタを持つC構造体

typedef struct { 
    char* name; 
    node* parent; 
} node; 

私が試して読んだ限り、これを行う方法やそれが可能であるかどうかはわかりません。

+1

重複の可能性:http://stackoverflow.com/questions/506366/ http://stackoverflow.com/questions/588623/ –

答えて

20

はい、参照できるように構造体に名前を付ける必要があります。構造が完全に定義された後

typedef struct node_ { 
    char* name; 
    struct node_ * parent; 
} node; 

nodeにのみ宣言してしまいます。

+0

どうもありがとう!それは私が知らなかった*詳細*です! :) – shazarre

0

はいこれが可能です。

これはリンクされたリストの作成方法です。

-2

あなたはそれを試してみませんか?構造体に名前を付ける必要があります。これは、再帰的なデータ構造が動作する方法です。

+0

OPは彼がすでにそれを試していたと述べた。 – Grandpa

+0

しかし、私が書いたように、私はidを試みた - 働かなかったので、私はここに尋ねた:) – shazarre

1

私は同意します...と木々。タイプを定義することは常にインスタンスを生成する前に発生するので、 "eggとchiken"のように見る必要はありません。だから、オブジェクトの同じ型のメンバ変数を持つことは、あなたが頭の中で2つを混ぜ合わせるときにはちょっと難しいです!

16

あなたはtypedefincomplete typeを使用することができます。

typedef struct node node; 

struct node { 
    char *name; 
    node *parent; 
}; 
関連する問題