teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

一部訂正

2015/10/22 14:07

投稿

argius
argius

スコア9396

answer CHANGED
@@ -4,10 +4,27 @@
4
4
  `Structure`関数を呼び出すときに、空のリストの先頭のノードを渡します。
5
5
 
6
6
  宣言はこのようになります。
7
- `int Structure(MojiR start, char *mojiyoko, int no);`
7
+ `int Structure(MojiR *start, char *mojiyoko, int no);`
8
+ ローカル変数の`MojiR *start`を引数に持ってくる感じですね。
8
9
 
10
+ ループでなく1回ごとに呼ぶとしたらこんな感じです。
11
+ 何度も`m`の下にどんどんつながっていきます。
12
+ ```lang-c
13
+ int main()
14
+ {
15
+ struct mojiR m = { "", 0, NULL };
9
16
 
17
+ Structure(&m, "word", 1);
18
+ Structure(&m, "rule", 2);
10
19
 
20
+ printf("1=%s, 2=%s\n", m.next->mojiyoko, m.next->next->mojiyoko);
21
+ // 1=word, 2=rule
22
+
23
+ return 0;
24
+ }
25
+ ```
26
+
27
+
11
28
  > どうやって自己参照構造体は順番を管理するのかも知りたいです。
12
29
  > (2次元配列では何行目と指定できたので…)
13
30