1、返回值未初始化
在函数返回语句中,如果将未初始化变量返回,而函数的调用方对该返回值进行了使用,会因使用的变量未初始化,造成程序运行产生意料之外的行为。
2、“返回值未初始化”的危害
3、示例代码
3.1 缺陷代码
在上述示例代码中,第71行声明 int 类型变量 ret,但没有进行初始化,第72行通过 if 语句进行条件判断,当条件成立的情况下,为 ret 赋值为1,在第74行通过return 语句返回。由于 if(0) 恒为 false,因此 ret 不会被赋值,当第74行返回时,返回值是未初始化的,存在“返回值未初始化”问题。
图1:“返回值未初始化”检测示例
3.2 修复代码
在上述修复代码中,修改第72行的 if 语句条件,对 ret 进行赋值,当第74行进行返回时,此时 ret 已经被赋值,从而避免了返回值未初始化问题。
图2:修复后检测结果