但是如果在結(jié)構(gòu)體中,兩個數(shù)組的內(nèi)存分配是連續(xù)的。為了示例方便,我將代碼做了簡化,例如如下面的test結(jié)果體中,數(shù)組a和數(shù)組b的內(nèi)存是連續(xù)的,也就是說a[9]后面跟的就是b[0].
因此在訪問a的時候,如果數(shù)組越界,就會訪問到數(shù)組b中,例如a[29]=b[19]; 因此如果不對a的數(shù)組訪問進(jìn)行下標(biāo)校驗,將會從b中取得數(shù)據(jù),如果在對a賦值時越界,將會對b中的數(shù)據(jù)進(jìn)行修改,這將會帶來調(diào)試的巨大麻煩,表現(xiàn)形式是b數(shù)據(jù)在某個地方被修改了。
posted on 2010-07-18 01:31 role0523 閱讀(802) 評論(2) 編輯 收藏 引用
不如用vector代替你的if 回復(fù) 更多評論
@陳梓瀚(vczh) 嵌入式項目中 vector還是比較慎用的 回復(fù) 更多評論