我是C,Ubuntu的新手,并决定安装Valgrind并在这个简单的C代码上测试它:
#include <stdio.h>
int *p;
int main(void) {
p = calloc(100, sizeof(int));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我已将此代码放在sum.c文件中并进行编译.然后我输入了:
valgrind --tool=memcheck --leak-check=yes sum
Run Code Online (Sandbox Code Playgroud)
在终端窗口,这是我得到的:

我不知道它是继续循环还是只是卡住,但它会保持这种方式,直到我点击ctrl + d来停止它,这就是我得到的:

难道我做错了什么 ?为什么我不能看到我有内存泄漏?
顺便说一句,这是Ubuntu版本11.04.
提前致谢
请注意
00000 0
Run Code Online (Sandbox Code Playgroud)
你正在运行/usr/bin/sum而不是你自己的可执行文件,因为你没有说./sum.这就是你必须击中的原因C-d:sum(1)等到EOF.
作为旁注,很可能你不会报告泄漏,而是"内存仍然可以访问".