允许访问超出范围的数组下标
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 你记忆中的这个位置是什么,但它是未定义的。
或者,如果您将某些内容分配给内存位置,则会破坏您自己的内存,如果它能正常工作,可能会导致各种问题。
考虑这个定义
int a[3][3] = {0};
这里我分配了9个连续的内存空间,总大小为3*3*sizeof(int)
为数组存储的字节。现在我有这个任务
a[0][12] = 3;
看完thispost,我明白了我是从基地址访问a[12]
地址。
但现在我的问题是 a[0][12]
数组下标如何能够访问超出分配给 a
范围的值??
这是未定义的行为,因为您正在从某个内存块访问内存。
所以它很可能 return 你记忆中的这个位置是什么,但它是未定义的。
或者,如果您将某些内容分配给内存位置,则会破坏您自己的内存,如果它能正常工作,可能会导致各种问题。