为什么不提出异常?如果枚举大小小于100字节

Jul*_*Vga 1 c unions

联合的大小是95个字节,为什么如果我尝试在a处访问102位置,不会引发异常?或者我只是覆盖了另一个内存位置?

   #include<stdio.h>

  union u{
      char a[95];
      int b;
      char *c;
    };

   union u u1;
   int main()
   {
       u1.a[102] = 'b';
       printf("%c",u1.a[102]);
      return 0;
    }
Run Code Online (Sandbox Code Playgroud)

Man*_*rse 5

这是未定义的行为.你运气不好,什么也没发生.