我一直在寻找一些例子内跑过这样的事:把一个变量数组索引
void main(){
int k[1];
int b=60;
cout << k[b]; // what does this line do?
_getch();
}
我调试它但没有真正了解发生了什么事情。
我一直在寻找一些例子内跑过这样的事:把一个变量数组索引
void main(){
int k[1];
int b=60;
cout << k[b]; // what does this line do?
_getch();
}
我调试它但没有真正了解发生了什么事情。
cout << k[b];
该行应打印数组k
的第61个元素。由于大小为1的数组。它会导致未定义的行为。
它只是打印出零是令人困惑的部分。无论如何感谢您的回答。 –
@AreyMSalih打印零是UB的有效症状。就像任何其他症状一样。 – Quentin
@Quentin回头看我真的问了一个愚蠢的问题。对不起浪费你的时间,谢谢。 –
未定义的行为因为您已经分配了数组1字节的大小,但您尝试访问元素出界。
未定义的行为,因为它正在访问数组索引超出范围 – xander
另外,它应该是'int main()'。标准C++中没有'_getch'这样的东西。 –