質問するログイン新規登録

回答編集履歴

1

他の問題点も追加

2021/01/13 22:12

投稿

ppaul
ppaul

スコア24672

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バイト目に書き込むので、確実にsigsegvが起きます。
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
+ ```