gpt4 book ai didi

c - 为什么结构数组允许我索引到边界数组之外

转载 作者:行者123 更新时间:2023-11-30 19:03:50 26 4
gpt4 key购买 nike

抱歉,标题不好,我是 C 语言新手,但这是我不明白的部分。

我有一个简单的结构;

struct st{

int a;
int b;
};

我正在创建结构数组并将值索引到主变量“a”;

int main(){
struct st st_arr[2];
st_arr[0].a = 5;
st_arr[1].a = 10;
st_arr[4].a = 20;

printf("%d %d %d\n", st_arr[0].a, st_arr[1].a, st_arr[4].a);
}

我已经分配了 2 个结构数组,但它让我索引该结构的第 4 个,为什么呢?难道它不会给我一个错误吗?

输出是:

5 10 20

最佳答案

C 默认情况下不提供绑定(bind)检查。

访问越界(即无效内存)被定义为 undefined behaviour .

关于c - 为什么结构数组允许我索引到边界数组之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53390824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com