【发布时间】:2014-10-26 16:16:03
【问题描述】:
我有兴趣向覆盖检查器添加规则,并想咨询它是否可行以及需要做什么才能实现。 我说的是 C 编程,我想使用定义的枚举器来限制对数组的访问——而不是任何整数索引。
例如,我有两个数组:oranges 和 apples,大小分别为 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不会检查数组索引是否越界。 -
我知道,如果需要,我可以检查覆盖率。关于 out-of-band ,默认检查覆盖率。
-
@Jayesh:确实,因此而浪费的开发/质量保证/支持成本的综合成本无疑可以资助几次载人火星任务,包括回程;)
标签: c arrays coverity out-of-band