我是刚接触过瓦兰的人,我想看看瓦兰的工作原理。我为内存泄漏编写了一个示例程序。然而,瓦伦奇似乎没有检测到内存泄漏。你能告诉我为什么吗?或者下面的代码是否泄漏内存?
#include <iostream>
using namespace std;
class test {
private:
int a;
public:
test(int c) {
a = c;
}
};
int main() {
这是我第一次使用工具来管理我的程序,我想了解它是如何通过一些简单的尝试来工作的:
int main(){
int a;
scanf("%d",&a);
}
执行后,瓦伦说有一个分配,一个免费,这是可以的。然后我做了这个:
int main(){
int a,b;
scanf("%d%d",&a,&b);
}
而执行完后,瓦兰还说一次分配,一次免费。为什么?我不是分配了2次内存,在我的程序中放了2个ints吗?我以为它会说两个配给2免费
在使用--leak-check=full运行val研时,生成的报告包含有关内存“可能丢失”的信息。
关于这一点的一些信息,在瓦兰手册,以及一些例子报告。
LEAK SUMMARY:
definitely lost: 4 bytes in 1 blocks
indirectly lost: 0 bytes in 0 blocks
possibly lost: 0 bytes in 0 blocks
still reachable: 95 bytes in 6 blocks
of which reachable via he