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

Permissible access to out-of-range array subscript

本文关键字:范围 数组 下标 许访问 访问      更新时间:2023-10-16

考虑这个定义

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

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

a[0][12] = 3;  

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

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

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

或者,如果你把一些东西分配到内存位置,你就会破坏你自己的内存,如果它有效的话,这可能会导致各种问题。