读取未由内存支持的未初始化对象

Version >= C11

如果对象为 1 ,则读取对象将导致未定义的行为 :

  • 未初始化
  • 用自动存储持续时间定义
  • 它的地址永远不会被采纳

以下示例中的变量 a 满足所有这些条件:

void Function( void )
{
    int a;
    int b = a;
} 

1 (引自来自:ISO:IEC 9899:201X 6.3.2.1 左值,数组和函数指示符 2)
如果左值指定了一个自动存储持续时间的对象,该对象可以使用寄存器存储类声明(从未使用过其地址) ,并且该对象未初始化(未使用初始化程序声明,并且在使用之前未对其进行任何分配),行为未定义。