回答編集履歴
1
他の問題点も追加
answer
CHANGED
@@ -1,5 +1,10 @@
|
|
1
|
+
最初に
|
2
|
+
```C
|
1
|
-
|
3
|
+
current = head;
|
2
4
|
|
5
|
+
```
|
6
|
+
ここでheadがNULLでないことを確認していないのはなぜなのでしょう?
|
7
|
+
|
3
8
|
```C
|
4
9
|
while(current->next !=NULL)//最後まで
|
5
10
|
{
|
@@ -11,4 +16,15 @@
|
|
11
16
|
```C
|
12
17
|
current = current->next;
|
13
18
|
```
|
14
|
-
をやって、addressが0番地の1000バイト先に入っているデータをアドレスだと思ってそこにアクセスに行き、その1008バイト目に書き込むので、確実に
|
19
|
+
をやって、addressが0番地の1000バイト先に入っているデータをアドレスだと思ってそこにアクセスに行き、その1008バイト目に書き込むので、確実にセグメンテーションフォールトが起きます。
|
20
|
+
|
21
|
+
positionが1でない場合はその下に行きますが、なぜかpositionは使わずに消していますね。
|
22
|
+
|
23
|
+
```C
|
24
|
+
if(current !=NULL)//それ以外の場合
|
25
|
+
{
|
26
|
+
current->previous->next = current->next;
|
27
|
+
current->next->previous =current->previous;
|
28
|
+
free(current);
|
29
|
+
}
|
30
|
+
```
|