在下面的代碼的,我已經分配的值到一個數組元件,其出數組界限,在Linux的環境在CLI代碼給我錯誤消息:array index 5 is past the end of the array which contains 5 elements
。陣列:出索引/邊界
但在IDE上調試時 codeblocks -compiler找不到這個bug-那麼有什麼解釋嗎?
#include <stdio.h>
int main()
{
int array[5],i;
for (i=0; i<5; i++) {
array[i] = i+1;
}
array[5] = 666;
for (i=0; i<5; i++) {
printf("array[%d]=%d\n", i, array[i]);
}
printf("array[5]=%d\n", array[5]);
return 0;
}
在數組邊界之外使用指示符是[未定義的行爲](https://www.google.pl/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=c%20undefined%20behavior )。除了任何IDE都不能做任何事情。 – Crozin
codeblocs的編譯器是什麼? – LPs
想想** undefined ** _behaviour_的含義。 – Olaf