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

回答編集履歴

3

誤字修正

2020/11/04 23:32

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  node はポインタではないので何も指しません。
4
4
  node = *top; を実行すると、
5
5
  node は Node型の構造体データで *top と全く同じデータを持っています。
6
- 2つの構造体データある時に、free(top); で *top の領域を解放しても
6
+ 2つの構造体データある時に、free(top); で *top の領域を解放しても
7
7
  それは node には影響しません。
8
8
 
9
9
  おそらく次のコードと勘違いしているのでしょう。

2

誤字修正

2020/11/04 23:31

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  node はポインタではないので何も指しません。
4
4
  node = *top; を実行すると、
5
5
  node は Node型の構造体データで *top と全く同じデータを持っています。
6
- 2つ構造体データある時に、free(top); で *top の領域を解放しても
6
+ 2つ構造体データある時に、free(top); で *top の領域を解放しても
7
7
  それは node には影響しません。
8
8
 
9
9
  おそらく次のコードと勘違いしているのでしょう。

1

コードの追加

2020/11/04 18:46

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -4,4 +4,18 @@
4
4
  node = *top; を実行すると、
5
5
  node は Node型の構造体データで *top と全く同じデータを持っています。
6
6
  2つ構造体データある時に、free(top); で *top の領域を解放しても
7
- それは node には影響しません。
7
+ それは node には影響しません。
8
+
9
+ おそらく次のコードと勘違いしているのでしょう。
10
+ ```C
11
+ int pop() {
12
+ Node *node;
13
+
14
+ if (top == NULL)
15
+ return -1;
16
+ node = top;
17
+ free(top);
18
+ top = node->next;
19
+ return node->value;
20
+ }
21
+ ```