ここでは2つの構造体を使用しています。私は構造体のメンバーが構造体を指すように初期化する方法がわかりません。これが可能かどうかは分かりません。Cの構造体を指す構造体のポインティング・メンバー
typedef struct __node
{
int value;
struct __node* left;
struct __node* right;
}setNode;
typedef struct __set {
setNode* root;
//mutex for this set (To be implemented)
}set;
私はセットのメンバーを初期化したいが、私はset result
のと同じアドレスを指すように result->root
を得るために行う必要があるかどうかはわかりません。
set* new_set()
{
set* result = malloc(sizeof(set));
result -> root = NULL; // Not sure???
}
私はrootへのポインタを取得します。
void someOther(set* s)
{
setNode* temp = s -> root;
//....
}
ご質問があまりにも曖昧です。
Additional Info
私は2つの構造体が欲しいです。 1つはツリー[setNode]のノードとツリーのルートへのポインタと他のいくつかのメンバ(そのツリーのためのmutexのようなもの)を含む第2の構造体[セット]です。それは問題ではない。
問題:関数内で、私はsetNode* temp = someSet -> root;
を持っているので、ツリーを越えることができるはずです。つまり、tempはsomeSetのルートを指す必要があります。では、new_set関数でresult -> root
に何を割り当てるべきですか?
'__node'は2つの連続したアンダースコアを含むため、UBです。それをしないでください。 – Bathsheba
@Bathsheba UBではなく、そのような名前は予約されています。 –
質問はレイアウトから独立しています... –