- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Visual Studioのメモリリークについて)
Visual Studioのメモリリークについて
このQ&Aのポイント
- Visual Studioのプログラム終了時に発生するメモリリークについて解決方法を探しています。
- プログラムの動作には影響はないが、想定外の動作が起こることを避けるため、メモリリークを取り除きたい。
- 既に_CrtSetBreakAlloc(Num)を利用してメモリリークをチェックしたが、一部のメモリリークが解消されない問題がある。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ちょっときつい書き方をしますが、楽して解決する方法はありません。 この「楽して」というのは、_CrtSetBreakAlloc(Num)に頼りきっていることです。 プロセス内で複数のスレッドを起動した場合、スレッドを終了せずにプロセスを終了すると、_CrtSetBreakAlloc(Num)では発見できないことがあります。 >解決方法などについて 究極的には、メモリを確保するnew/create系の処理に対して、メモリを解放するdelete/closeがすべて行われているかソースを虱潰しに確認していくしかありません。 あとは、タスクマネージャーのプロセスタブで「メモリ使用量」「スレッドの数」「ハンドルの数」などを監視しながら操作を行い、前述の値がどのように変化するかであたりをつけていくことです。
お礼
御回答有り難うございます。 >楽して解決する方法はありません。 確かに関数に頼りきりだったように思います。ご指摘有り難うございます。 >>解決方法などについて (普通に使用する場合の)new/create系の処理については既にチェックが終わり…というか、 mydlg.DoModal();(mydlgはダイアログベースで自作した初期起動時のダイアログ) をコメントアウトし、そもそもnew/create関係が呼び出されないようにしてもメモリリークが発生するので、途方にくれています。 タスクマネージャについては完全に盲点でした。プログラムを走らせて確認してみます。