回答編集履歴
1
他の問題点も追加
test
CHANGED
@@ -1,4 +1,14 @@
|
|
1
|
+
最初に
|
2
|
+
|
3
|
+
```C
|
4
|
+
|
1
|
-
|
5
|
+
current = head;
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
```
|
10
|
+
|
11
|
+
ここでheadがNULLでないことを確認していないのはなぜなのでしょう?
|
2
12
|
|
3
13
|
|
4
14
|
|
@@ -24,4 +34,26 @@
|
|
24
34
|
|
25
35
|
```
|
26
36
|
|
27
|
-
をやって、addressが0番地の1000バイト先に入っているデータをアドレスだと思ってそこにアクセスに行き、その1008バイト目に書き込むので、確実に
|
37
|
+
をやって、addressが0番地の1000バイト先に入っているデータをアドレスだと思ってそこにアクセスに行き、その1008バイト目に書き込むので、確実にセグメンテーションフォールトが起きます。
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
positionが1でない場合はその下に行きますが、なぜかpositionは使わずに消していますね。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
```C
|
46
|
+
|
47
|
+
if(current !=NULL)//それ以外の場合
|
48
|
+
|
49
|
+
{
|
50
|
+
|
51
|
+
current->previous->next = current->next;
|
52
|
+
|
53
|
+
current->next->previous =current->previous;
|
54
|
+
|
55
|
+
free(current);
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
```
|