允许访问超出范围的数组下标

Permissible access to out-of-range array subscript

考虑这个定义

int a[3][3] = {0};  

这里我分配了9个连续的内存空间,总大小为3*3*sizeof(int)
为数组存储的字节。现在我有这个任务

a[0][12] = 3;  

看完thispost,我明白了我是从基地址访问a[12]地址。
但现在我的问题是 a[0][12] 数组下标如何能够访问超出分配给 a 范围的值??

这是未定义的行为,因为您正在从某个内存块访问内存。

所以它很可能 return 你记忆中的这个位置是什么,但它是未定义的。

或者,如果您将某些内容分配给内存位置,则会破坏您自己的内存,如果它能正常工作,可能会导致各种问题。