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

Visual Studioのメモリリークについて

このQ&Aのポイント
  • Visual Studioのプログラム終了時に発生するメモリリークについて解決方法を探しています。
  • プログラムの動作には影響はないが、想定外の動作が起こることを避けるため、メモリリークを取り除きたい。
  • 既に_CrtSetBreakAlloc(Num)を利用してメモリリークをチェックしたが、一部のメモリリークが解消されない問題がある。

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

  • ベストアンサー
  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

ちょっときつい書き方をしますが、楽して解決する方法はありません。 この「楽して」というのは、_CrtSetBreakAlloc(Num)に頼りきっていることです。 プロセス内で複数のスレッドを起動した場合、スレッドを終了せずにプロセスを終了すると、_CrtSetBreakAlloc(Num)では発見できないことがあります。 >解決方法などについて 究極的には、メモリを確保するnew/create系の処理に対して、メモリを解放するdelete/closeがすべて行われているかソースを虱潰しに確認していくしかありません。 あとは、タスクマネージャーのプロセスタブで「メモリ使用量」「スレッドの数」「ハンドルの数」などを監視しながら操作を行い、前述の値がどのように変化するかであたりをつけていくことです。

alphaomega
質問者

お礼

御回答有り難うございます。 >楽して解決する方法はありません。 確かに関数に頼りきりだったように思います。ご指摘有り難うございます。 >>解決方法などについて (普通に使用する場合の)new/create系の処理については既にチェックが終わり…というか、 mydlg.DoModal();(mydlgはダイアログベースで自作した初期起動時のダイアログ) をコメントアウトし、そもそもnew/create関係が呼び出されないようにしてもメモリリークが発生するので、途方にくれています。 タスクマネージャについては完全に盲点でした。プログラムを走らせて確認してみます。

専門家に質問してみよう