gpt4 book ai didi

c - 为什么我的 C 编译器没有捕捉到这个越界错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:07:25 25 4
gpt4 key购买 nike

我将我的数组初始化为大小 3,然后在其中分配 5 个元素。

uint8_t test[3] = {};

for (i = 0; i <= 5; i++)
{
test[i]= i;
}

最佳答案

因为 C 不是那样工作的。作为程序员,您有责任确保数组索引不会越界。

解决此问题的一种方法是,如果您知道数组需要多长时间,请创建一个变量并在您的程序中使用它,如下所示:

const int ARRAY_LENGTH = 3;

uint8_t test[ARRAY_LENGTH];

for (int i = 0; i < ARRAY_LENGTH; i++)
{
test[i] = i;
}

这样,如果数组长度需要改变,你只需要记住在一个地方改变它,而不是每个使用它的地方。

关于c - 为什么我的 C 编译器没有捕捉到这个越界错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31432542/

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