線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:955
推到 Plurk!
推到 Facebook!

Assign值至陣列超出範圍的防治方式?

尚未結案
mysteriousGE
一般會員


發表:4
回覆:3
積分:1
註冊:2011-03-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-11-02 11:15:20 IP:60.251.xxx.xxx 訂閱
 最近發現BCB 6有個問題

當Assign值給陣列,當Index超出該陣列範圍時,也不見得會有Error的警告,甚至會寫到其他陣列的範圍內。

例如:


[code cpp]
struct AAA
{
int A[5];
int B[3];
};

AAA a;
a.A[5] = 6;
[/code]

上面的情況「可能」導致B[0]變成6

變數沒正確寫入A還好,寫錯變數就真的很難Debug....

如果想要杜絕這種情況發生,除了寫程式多加注意Index大小外

還有什麼方式可以防範此現象發生呢?

我有想到所有陣列的Assign動作多一道檢查的手續.....但感覺就很麻煩~"~

還請各位先進指點指點~


aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-11-02 16:39:52 IP:122.126.xxx.xxx 訂閱
你好,

除了寫程式多加注意Index大小外

還是

多加注意Index大小外


這就是程式好壞與人員素質好壞的差異點之一了!


以上是我的看法 :)

------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
系統時間:2017-12-15 19:53:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!