gpt4 book ai didi

c - 限制通过错误索引访问数组

转载 作者:行者123 更新时间:2023-12-04 20:08:58 27 4
gpt4 key购买 nike

我有兴趣向覆盖率检查器添加规则,并想咨询它是否可行以及需要做什么才能实现。我在谈论 C 编程,我想使用定义的枚举器限制对数组的访问,而不是任何整数索引。

例如,我有两个数组:orangesapples,分别有 5 和 10 个单元格。

为了避免误用数组,我想定义两个枚举(或 typedef,如果需要的话),一个用于 oranges,一个用于 apples:

Enum apples {
A0 = 0,
A1 = 1,
A2 = 2,
A3 = 3,
A4 = 4,
}

Enum oranges {
O0 = 0,
O1 = 1,
O2 = 2,
O3 = 3,
O4 = 4,
O5 = 5,
O6 = 6,
O7 = 7,
O8 = 8,
O9 = 9,
}

我想添加一个规则来检查对这些数组的每次访问。例如:

Apples[A4];  //success

Apples[O0]; // coverity error

Apples[2]; // coverity error

是否可以添加这样的规则?

最佳答案

如果知道长度,你可以创建一个函数来检查这个。我没有看到其他解决方案,因为 C 不检查索引。

<array_type> accessArray(<array_type> array, int index, int len)
{
if (index > len || index < 0) {
return <error_value>; // return an error value set by you
} else {
return array[index];
}
}

关于c - 限制通过错误索引访问数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25622697/

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