【发布时间】:2011-03-27 22:14:50
【问题描述】:
有没有办法用静态分析工具检测像这样的简单内存泄漏?我无法更改代码以包含运行时内存泄漏检测中使用的典型包含(struc1 是具有一些字段的简单结构)。
void noRelease(void)
{
struc1 *memoryLeak;
memoryLeak = (struc1 *) malloc(sizeof struc1);
if (NULL != memoryLeak)
{
memoryLeak->a=3;
}
}
VSTS (Visual Studio Team System) 检测到由于异常导致的内存泄漏,但无法看到这个简单的泄漏。
任何想法都会非常有帮助。 非常感谢。
【问题讨论】:
-
没有人会写出这样的代码。您可以编写这样的代码并不意味着有人会发现编写一个工具来检测它是有利可图的。这不赚钱。
-
@Hans:当然,几乎没有人会编写这样的代码。这只是一个概念证明。如果一个工具不能检测到这一点,它当然不会检测到更严重的泄漏。
-
@Hans - 问题是很多人都写过类似的代码,不幸的是,太多这样的代码仍然在流传。
标签: visual-studio visual-c++ memory-leaks static-analysis