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