考虑这个定义
int a[3][3] = {0};
这里我有9个分配的连续内存空间,总大小为3 * 3 * sizeof(int)
为数组存储的字节数。现在我有了这个作业
a[0][12] = 3;
阅读this帖后,我了解到我正在从基地址访问a[12]
地址。
但现在我的问题是 a[0][12]
数组下标如何能够访问超出分配给a
的范围的值?
答案 0 :(得分:2)
它是未定义的行为,因为您正在从某个内存块访问内存。
所以它很可能会回到你记忆中这个位置的内容,但它未定义。
或者,如果你将某些东西分配到记忆位置,你就会破坏自己的记忆,如果它完全有效,可能会导致各种各样的问题。