讀取未由記憶體支援的未初始化物件

Version >= C11

如果物件為 1 ,則讀取物件將導致未定義的行為 :

  • 未初始化
  • 用自動儲存持續時間定義
  • 它的地址永遠不會被採納

以下示例中的變數 a 滿足所有這些條件:

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

1 (引自來自:ISO:IEC 9899:201X 6.3.2.1 左值,陣列和函式指示符 2)
如果左值指定了一個自動儲存持續時間的物件,該物件可以使用暫存器儲存類宣告(從未使用過其地址) ,並且該物件未初始化(未使用初始化程式宣告,並且在使用之前未對其進行任何分配),行為未定義。