回答編集履歴

2

コード修正

2023/01/30 10:57

投稿

jimbe
jimbe

スコア12616

test CHANGED
@@ -11,10 +11,16 @@
11
11
  int value;
12
12
  } CLIENT_DATA;
13
13
 
14
- void print(LIST list) {
14
+ void print_clients(LIST list) {
15
15
  for(CLIENT_DATA *client = next_node(list); client != NULL; client = next_node(NULL)) {
16
16
  printf("name=%s, value=%d\n", client->name, client->value);
17
17
  }
18
+ }
19
+
20
+ void add_client(LIST list, char *name, int value) {
21
+ CLIENT_DATA *client = add_node(list, sizeof(CLIENT_DATA));
22
+ strcpy(client->name, name);
23
+ client->value = value;
18
24
  }
19
25
 
20
26
  void remove_client(LIST list, char *name) {
@@ -29,43 +35,35 @@
29
35
  int main(int argc, char **argv) {
30
36
  printf("initial ----\n");
31
37
  LIST list = alloc_list();
32
- print(list);
38
+ print_clients(list);
33
39
 
34
40
  printf("add AAA ----\n");
35
- CLIENT_DATA *client = add_node(list, sizeof(CLIENT_DATA));
36
- strcpy(client->name, "AAA");
41
+ add_client(list, "AAA", 1);
37
- client->value = 1;
38
- print(list);
42
+ print_clients(list);
39
43
 
40
44
  printf("add BBB ----\n");
41
- client = add_node(list, sizeof(CLIENT_DATA));
42
- strcpy(client->name, "BBB");
45
+ add_client(list, "BBB", 2);
43
- client->value = 2;
44
- print(list);
46
+ print_clients(list);
45
47
 
46
48
  printf("add CCC ----\n");
47
- client = add_node(list, sizeof(CLIENT_DATA));
48
- strcpy(client->name, "CCC");
49
+ add_client(list, "CCC", 3);
49
- client->value = 3;
50
- print(list);
50
+ print_clients(list);
51
51
 
52
52
  printf("remove BBB ----\n");
53
53
  remove_client(list, "BBB");
54
- print(list);
54
+ print_clients(list);
55
55
 
56
56
  printf("remove AAA ----\n");
57
57
  remove_client(list, "AAA");
58
- print(list);
58
+ print_clients(list);
59
59
 
60
60
  printf("add DDD ----\n");
61
- client = add_node(list, sizeof(CLIENT_DATA));
62
- strcpy(client->name, "DDD");
61
+ add_client(list, "DDD", 4);
63
- client->value = 4;
64
- print(list);
62
+ print_clients(list);
65
63
 
66
64
  printf("remove DDD ----\n");
67
65
  remove_client(list, "DDD");
68
- print(list);
66
+ print_clients(list);
69
67
 
70
68
  printf("free ----\n");
71
69
  free_list(list);

1

誤字?

2023/01/29 08:48

投稿

jimbe
jimbe

スコア12616

test CHANGED
@@ -1,4 +1,4 @@
1
- UDP はともかく任意のデータを保持するようなリング状双方向リンクならこんな感じ。
1
+ UDP はともかく任意のデータを保持するようなリング状双方向リストならこんな感じ。
2
2
  UDPと関係無いことを表す意味でもリスト部分は別ファイルで、ノードのポインタ操作が main に出てこないようにしてみました。
3
3
  ```c
4
4
  #include <stdio.h>