【问题标题】:Permissible access to out-of-range array subscript [duplicate]允许访问超出范围的数组下标
【发布时间】:2015-02-03 16:39:37
【问题描述】:

考虑这个定义

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

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

a[0][12] = 3;  

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

【问题讨论】:

标签: c++ multidimensional-array


【解决方案1】:

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

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

或者,如果您将某些内容分配给内存位置,那么您正在破坏自己的内存,如果它完全起作用,可能会导致各种问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 2015-05-27
    • 2020-05-03
    相关资源
    最近更新 更多