变量在内存空间布局不同;

当i=11时,发生死循环

#include <stdio.h>
#include <stdlib.h>

int main()

{
    int arr[10]={0,1,2,3,4,5,6,7,8,9};
    int i =0;
    for(i=0;i<=11;i++){
        printf("hehe\n");
        arr[i]=0;
    }
    return 0;
}

栈空间的内存布局_局部变量在栈区的内存空间布局

栈空间的内存布局_局部变量在栈区的内存空间布局_02

栈空间的内存布局_局部变量在栈区的内存空间布局_03

故当i=10时;就不会发生死循环

栈空间的内存布局_局部变量在栈区的内存空间布局_04

栈空间的内存布局_局部变量在栈区的内存空间布局_05

并且在不同的编译器上,内存的空间分配有所差异