回答編集履歴

3

追記

2018/01/21 04:19

投稿

nullpon
nullpon

スコア5737

test CHANGED
@@ -9,3 +9,15 @@
9
9
 
10
10
 
11
11
  list_add()は、addressの[双方向リスト](https://ja.wikipedia.org/wiki/%E9%80%A3%E7%B5%90%E3%83%AA%E3%82%B9%E3%83%88#%E5%8F%8C%E6%96%B9%E5%90%91%E3%83%AA%E3%82%B9%E3%83%88)の**先頭**に新規にaddressを追加していますが、リストの先頭のポインタを呼び出し元に返すため、ポインタのポインタになっています。
12
+
13
+
14
+
15
+ 追記
16
+
17
+ p->next = *head; # 新しく確保したaddressの次ポインタに、リストの先頭を代入する。
18
+
19
+ if (p->next != 0) p->next->before = p; # リストの先頭の前ポインタに、新しく確保したaddressを代入する。
20
+
21
+ p->before = 0; # 新しく確保したaddressの前ポインタに無し(0)を代入する。
22
+
23
+ *head = p; 新しく確保したaddressをリストの先頭として、呼び出し元に返す。

2

修正

2018/01/21 04:19

投稿

nullpon
nullpon

スコア5737

test CHANGED
@@ -8,4 +8,4 @@
8
8
 
9
9
 
10
10
 
11
- list_add()は、headの[双方向リスト](https://ja.wikipedia.org/wiki/%E9%80%A3%E7%B5%90%E3%83%AA%E3%82%B9%E3%83%88#%E5%8F%8C%E6%96%B9%E5%90%91%E3%83%AA%E3%82%B9%E3%83%88)の**先頭**に新規にheadを追加していますが、リストの先頭のポインタを呼び出し元に返すため、ポインタのポインタになっています。
11
+ list_add()は、addressの[双方向リスト](https://ja.wikipedia.org/wiki/%E9%80%A3%E7%B5%90%E3%83%AA%E3%82%B9%E3%83%88#%E5%8F%8C%E6%96%B9%E5%90%91%E3%83%AA%E3%82%B9%E3%83%88)の**先頭**に新規にaddressを追加していますが、リストの先頭のポインタを呼び出し元に返すため、ポインタのポインタになっています。

1

訂正

2018/01/21 03:52

投稿

nullpon
nullpon

スコア5737

test CHANGED
@@ -1,6 +1,8 @@
1
1
  > コードのどこで実行結果の「ファイルから読んだ文字列:hosi,nagoya,5436,mail-7」
2
2
 
3
3
  を表示しているんですか。
4
+
5
+
4
6
 
5
7
  つprintf( "ファイルから読んだ文字列:%s\n", buff );
6
8