讀取未由記憶體支援的未初始化物件
Version >= C11
如果物件為 1 ,則讀取物件將導致未定義的行為 :
- 未初始化
- 用自動儲存持續時間定義
- 它的地址永遠不會被採納
以下示例中的變數 a 滿足所有這些條件:
void Function( void )
{
int a;
int b = a;
}
1 (引自來自:ISO:IEC 9899:201X 6.3.2.1 左值,陣列和函式指示符 2)
如果左值指定了一個自動儲存持續時間的物件,該物件可以使用暫存器儲存類宣告(從未使用過其地址) ,並且該物件未初始化(未使用初始化程式宣告,並且在使用之前未對其進行任何分配),行為未定義。