重新表述的問題更清楚:通過索引錯誤
我有興趣加入規則Coverity的跳棋和想諮詢下,如果它是可行的,什麼是需要做來實現。 我在談論C編程,我想限制使用定義的枚舉器訪問數組 - 而不是任何int索引。
例如,我有2個陣列,橘子和蘋果的大小5和10個相應的單元格。
爲了避免濫用數組,我想定義2枚枚舉(或者typedefs,如果需要的話),一個用於桔子,一個用於蘋果。
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'不檢查數組索引的界限。 – 2014-09-02 11:50:10
我知道,如果需要,我可以在保險範圍內進行檢查。 關於帶外,它是無損檢查掩護。 – 2014-09-02 11:50:50
@Jayesh:事實上,由於這個原因,開發/質量保證/支持費用被浪費了,因爲這可能無疑會資助幾項載人火星飛行任務,包括返程旅行;) – 2014-09-02 13:27:43