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

回答編集履歴

2

追記

2017/10/21 07:12

投稿

退会済みユーザー
answer CHANGED
@@ -1,5 +1,5 @@
1
1
  ポインタのポインタを参照するなど、不必要に難しく考えられているように思います。
2
- nodeReverse関数を実際にどのように呼びだされているのかがご提示頂いた内容からは不明ですが、もし引数としてnodeNew関数で返却されたnode_tノードのポインタを指定しているのであれば、逆順に入れ替え後のポインタの値は末尾のノードを参照しているために最後の要素しか出力されていないということが考えられます。
2
+ nodeReverse関数を実際にどのように呼びだされているのかがご提示頂いた内容からは不明ですが、もし引数としてnodeNew関数で返却されたnode_tノードのポインタを指定しているのであれば、逆順に入れ替え後のポインタの値は末尾のノードを参照しているために、listPrint関数の出力結果として最後の要素しか出力されていないということが考えられます。
3
3
  また、mallocで取得したメモリの開放がされていないので、プログラム終了時にfreeを実行されるように変更頂くとよいかと思います。
4
4
 
5
5
  同じ内容について下記のように考えてみましたので、ご参考まで記載します。

1

誤記の修正

2017/10/21 07:12

投稿

退会済みユーザー
answer CHANGED
@@ -1,6 +1,6 @@
1
1
  ポインタのポインタを参照するなど、不必要に難しく考えられているように思います。
2
2
  nodeReverse関数を実際にどのように呼びだされているのかがご提示頂いた内容からは不明ですが、もし引数としてnodeNew関数で返却されたnode_tノードのポインタを指定しているのであれば、逆順に入れ替え後のポインタの値は末尾のノードを参照しているために最後の要素しか出力されていないということが考えられます。
3
- また、mallocで取得したメモリの開放がされていないので、プログラム終了時にfreeを実行されるように変更頂くとよいかと思います。
3
+ また、mallocで取得したメモリの開放がされていないので、プログラム終了時にfreeを実行されるように変更頂くとよいかと思います。
4
4
 
5
5
  同じ内容について下記のように考えてみましたので、ご参考まで記載します。
6
6
 
@@ -74,7 +74,7 @@
74
74
  return head;
75
75
  }
76
76
 
77
- node_t *nodeNew(data_t dt, node_t *nxt)
77
+ node_t* nodeNew(data_t dt, node_t *nxt)
78
78
  {
79
79
  node_t *ndPtr;
80
80
  ndPtr = malloc(sizeof(node_t));