2017-02-24 82 views
-1

我一直在尋找一些例子內跑過這樣的事:把一個變量數組索引

void main(){ 

    int k[1]; 
    int b=60; 
    cout << k[b]; // what does this line do? 

    _getch(); 
} 

我調試它但沒有真正瞭解發生了什麼事情。

+6

未定義的行爲,因爲它正在訪問數組索引超出範圍 – xander

+3

另外,它應該是'int main()'。標準C++中沒有'_getch'這樣的東西。 –

回答

3
cout << k[b]; 

該行應打印數組k的第61個元素。由於大小爲1的數組。它會導致未定義的行爲。

+0

它只是打印出零是令人困惑的部分。無論如何感謝您的回答。 –

+0

@AreyMSalih打印零是UB的有效症狀。就像任何其他症狀一樣。 – Quentin

+0

@Quentin回頭看我真的問了一個愚蠢的問題。對不起浪費你的時間,謝謝。 –

2

未定義的行爲因爲您已經分配了數組1字節的大小,但您嘗試訪問元素出界。