2017-02-24 88 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字节的大小,但您尝试访问元素出界。