我有这段代码,
#include <iostream>
void foo(int *a)
{
std::cout<<*a<<std::endl;
}
int main()
{
int i;
foo(&i);
}
很明显,正在使用未初始化的变量。
我已经尝试过/RTCu并且依赖于错误 C4700,但是对于上面的代码,编译器没有将其标记为错误。
我还尝试运行代码分析,它报告为代码片段没有问题。
那么在我们的源代码中确定未初始化变量的可靠方法是什么?
我知道valgrind
在这里做了很棒的工作,但它不是我的选择,因为我有很多对 Windows API 和 MFC 的调用。