我被告知这是一个错误的代码,但我不知道为什么,有些人可以向我解释.为什么编译时不会有数组超出绑定异常?
int a[10];
int j;
void main () {
int i, j = 42;
for (i = 0; i <=10; i++) a[i] = i;
printf("%d", j);
}
Run Code Online (Sandbox Code Playgroud)
更改
int a[10];
Run Code Online (Sandbox Code Playgroud)
至
int a[11];
Run Code Online (Sandbox Code Playgroud)
要么
for (i = 0; i <=10; i++) a[i] = i;
Run Code Online (Sandbox Code Playgroud)
至
for (i = 0; i < 10; i++) a[i] = i;
Run Code Online (Sandbox Code Playgroud)
您已经创建了一个计数为10的数组,并尝试在其中放入11个元素.您需要在其中仅放置10个元素或创建更大的数组.