C語言安全編碼之?dāng)?shù)組索引位的合法范圍
更新時(shí)間:2014年07月07日 12:12:24 投稿:shichen2014
這篇文章主要介紹了C語言安全編碼的數(shù)組索引位合法范圍剖析,對(duì)于編碼安全非常重要!需要的朋友可以參考下
C語言中的數(shù)組索引必須保證位于合法的范圍內(nèi)!
示例代碼如下:
enum {TABLESIZE = 100};
int *table = NULL;
int insert_in_table(int pos, int value) {
if(!table) {
table = (int *)malloc(sizeof(int) *TABLESIZE);
}
if(pos >= TABLESIZE) {
return -1;
}
table[pos] = value;
return 0;
}
其中:pos為int類型,可能為負(fù)數(shù),這會(huì)導(dǎo)致在數(shù)組所引用的內(nèi)存邊界之外進(jìn)行寫入
解決方案如下:
enum {TABLESIZE = 100};
int *table = NULL;
int insert_in_table(size_t pos, int value) {
if(!table) {
table = (int *)malloc(sizeof(int) *TABLESIZE);
}
if(pos >= TABLESIZE) {
return -1;
}
table[pos] = value;
return 0;
}
您可能感興趣的文章:
- C語言柔性數(shù)組實(shí)例詳解
- C語言構(gòu)建動(dòng)態(tài)數(shù)組完整實(shí)例
- C語言安全之?dāng)?shù)組長(zhǎng)度與指針實(shí)例解析
- C語言安全編碼數(shù)組記法的一致性
- c語言動(dòng)態(tài)數(shù)組示例
- c語言合并兩個(gè)已排序數(shù)組的示例(c語言數(shù)組排序)
- 約瑟夫環(huán)問題(數(shù)組法)c語言實(shí)現(xiàn)
- C語言二維數(shù)組的處理實(shí)例
- 深入理解c語言數(shù)組
- C語言小程序 數(shù)組操作示例代碼
- C語言中全局?jǐn)?shù)組和局部數(shù)組的問題
- C語言求連續(xù)最大子數(shù)組和的方法
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(166.分?jǐn)?shù)轉(zhuǎn)循環(huán)小數(shù))
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(166.分?jǐn)?shù)轉(zhuǎn)循環(huán)小數(shù))2021-07-07
C++函數(shù)參數(shù)匹配規(guī)則示例小結(jié)
這篇文章主要介紹了C++函數(shù)參數(shù)匹配規(guī)則,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
C++成員函數(shù)如何當(dāng)作回調(diào)函數(shù)同時(shí)傳遞this指針
這篇文章主要介紹了C++成員函數(shù)如何當(dāng)作回調(diào)函數(shù)同時(shí)傳遞this指針,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
淺談C++內(nèi)存分配及變長(zhǎng)數(shù)組的動(dòng)態(tài)分配
下面小編就為大家?guī)硪黄獪\談C++內(nèi)存分配及變長(zhǎng)數(shù)組的動(dòng)態(tài)分配。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09

