當前位置:編程學習大全網 - 行動軟體 - 怎麽解決數組越界的問題?

怎麽解決數組越界的問題?

1、什麽是數組訪問越界?\x0d\我們通過數組的下標來得到數組內指定索引的元素。這稱作對數組的訪問。\x0d\如果壹個數組定義為有n個元素,那麽,對這n個元素(下標為0 到 \x0d\n-1的元素)的訪問都合法,如果對這n個元素之外的訪問,就是非法的,稱為“越界。\x0d\數組占用了壹段連續的內存空間。然後,我們可以通過指定數組下標來訪問這塊內存裏的不同位置。因此,當妳的下標過大時,訪問到的內存,就不再是這個數組“份內”的內存。妳訪問的,將是其它變量的內存了。\x0d\2、訪問越界會出現什麽結果?\x0d\首先,它並不會造成編譯錯誤!就是說,C,C++的編譯器並不判斷和指出妳的代碼“訪問越界”了。壹個明明是錯誤的東西,就這樣“順利”地通過了編譯。數組訪問越界在運行時,它的表現是不定的,有時似乎什麽事也沒有,程序壹直運行(當然,某些錯誤結果已造成);有時,則是程序壹下子崩潰。因此在使用數組時,壹定要在編程中判斷是否越界以保證程序的正確性。\x0d\常見的錯誤就是數組的size值和下標訪問值弄錯,數組的下表是從0開始的,最大的訪問值是size-1。\x0d\3、解決辦法\x0d\由於數組的元素個數默認情況下是不作為實參內容傳入調用函數的,因此會帶來數組訪問越界的相關問題,解決問題方法,可以用傳遞數組元素個數的方法即:用兩個實參,壹個是數組名,壹個是數組的長度。\x0d\舉例:\x0d\\x0d\#include\x0d\\x0d\void PutArray(int *p, int length)\x0d\\x0d\{\x0d\\x0d\ // 在此判斷入口參數p和length的有效性\x0d\\x0d\ \x0d\\x0d\ for(int \x0d\i=0;i

  • 上一篇:舒爾哈齊死前為什麽叫那齊婭
  • 下一篇:wcf是什麽意思?
  • copyright 2024編程學習大全網