我正在使用 pthreads 处理一些多线程代码。当我发现一些内存泄漏(通过 valgrind )时,我只是添加了一些
cout << " new [some name of class for me]" << endl;
部分构造函数,因为我以为我已经删除了所有这些。这显示其中一部分是在 main()之前启动的。 我已从main()中删除了所有内容,因此它看起来像:
int main(){
return 0;
}
即使没有任何 #includes ,仍会调用这些构造函数。我认为在这种情况下应该调用前面代码中的任何内容。我在eclipse中使用了“project clean”选项并尝试删除二进制文件( Debug / Release )。什么都没有帮助..
那是什么目的?我还能做什么? 提前致谢。
答案 0 :(得分:5)
global
和static
变量在main
之前初始化。除了在函数内声明的static
变量。它们在第一次通话时初始化。所以我认为你应该看看静态和全局变量