Windows开发:如何确定我的应用程序是否泄漏内存?

时间:2014-01-26 00:50:55

标签: c++ windows visual-studio-2010

很久以前,我被告知你在应用程序开始时添加的一些声明,当它完成时,设施会通知应用程序是否有未回收的内存。

TIA

加成

这是:

http://msdn.microsoft.com/en-us/library/e5ewb1h3%28v=vs.80%29.aspx

1 个答案:

答案 0 :(得分:1)

使用Visual Studio的调试C运行时库可以跟踪所有分配并自动报告在应用程序退出时未释放的任何分配。首先,包括<crtdbg.h>,然后在程序的最开始,要求它通过拨打电话来跟踪分配并报告泄漏:

_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);

在Visual Studio调试器的调试输出窗口(或监视调试输出的另一个程序)中,当应用程序结束时,您将看到泄漏分配的报告。

通常,您可能只想在调试版本中执行此操作,因为这会产生非常重要的性能影响。

另请注意,如果您分配单身并且永远不会释放它们,则会(不出意外)将其报告为泄漏。

Full details在MSDN中。