2
私はこのようなことをしたい。構造体にポインタを動的に割り当てた配列
typedef struct Test{
int value;
struct Test* parent;
struct Test** children;
}Test;
他の親構造を指すノードが必要です。次に、子ノードを指す動的に割り当てられた配列が必要です。私の質問は、これがどのように構文的に機能するかわかりません。例えば
、
Test* first;
Test* second;
Test* third;
(*third).value = 1;
(*first).parent = second;
(*first).child[0] = third;
printf("%d\n",(*first).(*child[0]).value);
がコンパイルされません。私はポインタの配列のためのスペースを割り当てるためにmallocで何かをする必要があると仮定していますが、わかりません。また、私は親ディレクトリと子ディレクトリの "値"にどのようにアクセスするのかよく分かりません。
ありがとうございました。ここではmallocへの呼び出しをキャストしない限りコンパイルはしません。その場合のエラーは「エラー: 'void *'から 'Test * {別名main():: Test *}' [-fpermissive]に変換できません " –
mallocがハッピーになるようにキャストを追加しました –
また最初の子のmallocを更新しました。最初の子=(テスト**)か最初の*子=(テスト*)であるべきかどうかを判断するのは時期尚早です。私はそれがここにある方法が正しいと思う。ダブル*はトリッキーです。 –