这个C代码的错误在哪里

Rn2*_*2dy -3 c

我被告知这是一个错误的代码,但我不知道为什么,有些人可以向我解释.为什么编译时不会有数组超出绑定异常?

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)

Ign*_*ams 27

你已经分配了10个空格.你填11.


use*_*erx 6

更改

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个元素或创建更大的数组.