私はプログラミングに不慣れではありませんが、C++には不慣れです。言語を演奏したり、言語と対話したりすると、物事をよりよく学ぶことができます。だから私が見つけたクールなことの1つは、VisualStudioにプログラムのメモリリークを次の方法で警告させる方法でした。
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
その後、電話します
_CrtDumpMemoryLeaks();
プログラムが終了し、すべてのメモリリークが出力ウィンドウに出力される前に、すばらしいです。
私の質問は
- メモリリークを見つけた後、Visual Studio 2012を再起動する必要がありますか?
- コンピューターを再起動する必要がありますか?
- これらのものはどれくらい漏れたままですか?または、Windowsは実行の最後にすべてのメモリをクリーンアップしますか?それが本当なら、Visual Studioで「デバッグモード」でプログラムを実行することは本当ですか?
はい、私は本当に、、などのようなスマートポインターを使用する必要があることを知ってshared_ptr
いますunique_ptr
が、これは学習のために意図的に行っています。これは「本物の」アプリではなく、サンドボックステストだけです。
また、メモリリークを見つけるこの方法は、リークを_CrtDumpMemoryLeaks ()
正確に見つけられない状況がありますか?素晴らしいツールのようです!