• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語単方向リストのメモリリークについて)

C言語単方向リストのメモリリークについて

このQ&Aのポイント
  • C言語単方向リストのメモリリークについてアドバイス、間違いの指摘等していただければと思います
  • ListInsert, ListDeleteに問題があると思うのですが、その問題に気づけません
  • ListInsert, ListDeleteに問題があると思うのですが、アドバイスをいただけませんか

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

うん, ListDelete でリークしてる. ?alloc と free の数が合わない. そもそも ListDelete において ptemp2 の意味がまったくない. ちなみにこの calloc の使い方は危ない. メンバ next が NULL になることを期待しているんだろうけど, それは (規格では) 保証されていない.

custom725
質問者

お礼

何とか自己解決できました。ご指摘して頂きありがとうございました。

custom725
質問者

補足

理解が不十分な状態であるため、どの部分のfreeがまだ行われていないのかが分かりません。よろしければお教えいただけないでしょうか?

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

PCELL ListInsert(PCELL pos, const char *string){ PCELL pNewCell; pNewCell=calloc(1,sizeof(CELL)); if(pNewCell!=NULL){ このelseでpNewCell=calloc(1,sizeof(CELL));が宙ぶらりん

custom725
質問者

補足

ご指摘ありがとうございます。