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

时间:2015-02-03 16:39:38

标签: c++ multidimensional-array

考虑这个定义

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

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

a[0][12] = 3;  

阅读this帖后,我了解到我正在从基地址访问a[12]地址。
但现在我的问题是 a[0][12]数组下标如何能够访问超出分配给a的范围的值?

1 个答案:

答案 0 :(得分:2)

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

所以它很可能会回到你记忆中这个位置的内容,但它未定义。

或者,如果你将某些东西分配到记忆位置,你就会破坏自己的记忆,如果它完全有效,可能会导致各种各样的问题。