未初始化的自动变量将值强制为随机值

kum*_*ran 2 c++ variables

这可能看起来像一个微不足道的问题.对不起,在这种情况下,我无法找到实际的方式.我知道自动变量是未初始化的.因此,下面提供的代码段可能会在块2中转储

char *p;  
if(NULL == p)  
{  
   //do something  block-1 statement
}  
else  
{  
  //do something else  block-2 statement
}  
Run Code Online (Sandbox Code Playgroud)

现在,在大多数平台中,自动变量的默认值为0或NULL,尤其是SUSE Linux风格.

一个.是否有任何编译器标志或任何其他选项,如果未初始化,将强制将局部变量设置为"垃圾"值?

PS:我知道静态分析工具很容易就能检测到问题.我只是想知道是否可以在运行时通过一些标志/选项设置来完成.

我正在使用SUSE 10/HP-UX和AIX平台.

小智 6

您不需要静态分析工具 - 只需使用-Wall标志进行编译即可让编辑器向您发出警告.并且不要寻找"创可贴"解决方案 - 只需自己初始化变量即可.