在vb中索引超出了陣列界限是怎麼回事

2022-04-30 17:35:32 字數 4206 閱讀 3440

1樓:

宣告陣列時,在陣列名之後跟一個用括號括起來的上界。上界不得超過 long 資料型別的範圍(-2,147,483,648 到 2,147,483,647)。例如,下列陣列宣告可出現在模組的宣告段:

dim counters (14) as integer '15 個元素。

dim sums (20) as double '21 個元素。

為建立公用陣列,直接用 public 取代 dim。

public counters (14) as integer

public sums (20) as double

在過程之中同樣的宣告使用 dim:

dim counters (14) as integer

dim sums (20) as double

第一個宣告建立了一個有 15 個元素的陣列,其索引號從 0 到 14 。第二個宣告建立了一個有 21 個元素的陣列,其索引號從 0 到 20 。預設的下界為 0。

為了規定下界,用關鍵字 to 顯式提供下界(為 long 資料型別):

dim counters (1 to 15) as integer

dim sums (100 to 120) as string

在前述宣告中,counters 的索引值範圍從 1 到 15,而 sums 的索引值範圍從 100 到 200。

2樓:

private sub form_load()dim a(5) as long '定義能儲存6個元素(0~6)的陣列

a(5) = 1

a(6) = 2 '這裡就是陣列界限了

end sub

3樓:匿名使用者

用動態新增陣列的語法

索引超出了陣列界限

4樓:閃洲廖晴曦

索引超出了陣列界限是指在通過索引獲取陣列內的值時,索引超出了陣列的總長度。

例如:int

array=;

在這個int型陣列array中有10個元素,它的總長度是10,索引是0-9。

當使用for迴圈獲取陣列內的值時,如果索引是10,則會報錯,錯誤原因是

索引超出了陣列界限。

for(int

i=0;i<11;i++)

擴充套件資料

陣列的特點:

1、陣列是相同資料型別的元素的集合。

2、陣列中的各元素的儲存是有先後順序的,它們在記憶體中按照這個先後順序連續存放在一起。

3、陣列元素用整個陣列的名字和它自己在陣列中的順序位置來表示。例如,a[0]表示名字為a的陣列中的第一個元素,a[1]代表陣列a的第二個元素,以此類推。

5樓:仙寶邱安南

比如你的陣列裡只有4個元素,你的程式呼叫了他的第六個元素,他不存在,就無法索引,然後報錯

6樓:匿名使用者

嗯,是的 在c#中陣列下標是從0開始的. 也就是說如果一個陣列有三個元素.

應該是 aliex[0] ,aliex[1] , aliex[2]這時候 aliex.length = 3

那麼 aliex[3] 當然已經超出了陣列的界限.陣列中根本不存在下標為3的元素

7樓:益堂允玉韻

如果你是要開啟**看電影,而出現了這個錯誤,那不是你的錯,是**的網頁出錯了,你著急沒用的。

8樓:來自靈棲洞濃桃豔李的檜柏

那句沒錯,但是你上面的錯了,首先""中的/是轉義字元,應該是("~//userimg//");然後,獲得的副檔名是帶著前面的那個.的,也就是.jpg等等

9樓:檀健六靈萱

舉個例子

inta[10];

下標是0~9

如果訪問a[10]的值,就是越界

10樓:

for (int i = 0; i < aliex.length; i++)

把=號去掉不就得了、、、

11樓:佘樂悅

for (int i = 0; i < aliex.length; i++)

這樣不就可以了

12樓:明琦的小可愛

回答索引超出陣列界限,一個是判斷一下迴圈語句中的迴圈上限是否出錯,再一個就是直接更改陣列大小。

「索引超出了陣列界限"並不是說索引有多長,而是說這個索引在陣列的界限當中找不到,可以適當增大陣列的大小,使得下面用到的索引能夠處在陣列的界限中。當然陣列不是越大越好,盲目增大陣列大小勢必會加大記憶體的開銷,響應速度會變慢。

還有一種方法就是使用變數來動態控制陣列大小,事先定義一個變數,通過使用者的輸入來決定這個陣列到底有多大,這樣避免了記憶體空間的浪費或者索引超出陣列界限的情況出現。另外,由使用者來決定陣列大小也是要事先設定好上限的,否則使用者惡意開銷陣列空間必然會導致宕機。

通常就是定義一個常量,這樣將來的程式的可讀性好、並且可移植性也好,以 c 語言為例,可以如下定義:#define max 30 /* 定義一個元素個數為 30 的常量,將來如果元素個數需要增減、或者減少,都可以根據具體需要修改這一處,而程式中其他所有涉及到的 max 都自動修改成新的數值,程式的可移植性好。

提問謝謝

回答好的,如果滿意請給小明老師贊喲

更多4條

在c#中,顯示索引超出了陣列界限是什麼回事啊

13樓:匿名使用者

就是你要獲取的陣列元素的位置 超過了陣列元素的個數。找不到這個位置下的元素,就報這樣的錯了

14樓:小小小饅頭仔

比如你陣列的元素個數是5個,結果你的索引寫了5,就超出了陣列的範圍了,就報錯了

15樓:

首先看陣列有沒有初始化;若初始化了,就看元素個數是否超出了你請求個數範圍。

16樓:w**eleter_淪

你程式裡索引了陣列範圍外的元素

索引超出了陣列界限如何解決

17樓:

1、在test.php檔案內,使用header設定test.php執行的編碼為utf8,避免輸出中文的時候出現亂碼。

2、在test.php檔案內,建立一個測試的陣列,例如,定義一個分類的陣列,其對應的索引值分別為0,4,8。

3、在test.php檔案內,使用array_values()方法將上一步的資料重新排序,並且從0開始,把重新排序的陣列儲存在$result變數中。

4、在test.php檔案內,使用foreach方法遍歷陣列,其中$k為索引值,$v為索引值對應的陣列值。

5、在test.php檔案內,使用echo方法輸出陣列中的索引值和對應的陣列值即可。

18樓:

索引下標超出陣列界限沒有什麼好的解決辦法,通常就是定義一個常量,這樣將來的程式的可讀性好、並且可移植性也好,以 c 語言為例,可以如下定義:

#define max 30 /* 定義一個元素個數為 30 的常量,將來如果元素個數需要增減、或者減少,都可以根據具體需要修改這一處,而程式中其他所有涉及到的 max 都自動修改成新的數值,程式的可移植性好 */

void main( )

19樓:明琦的小可愛

回答索引超出陣列界限,一個是判斷一下迴圈語句中的迴圈上限是否出錯,再一個就是直接更改陣列大小。

「索引超出了陣列界限"並不是說索引有多長,而是說這個索引在陣列的界限當中找不到,可以適當增大陣列的大小,使得下面用到的索引能夠處在陣列的界限中。當然陣列不是越大越好,盲目增大陣列大小勢必會加大記憶體的開銷,響應速度會變慢。

還有一種方法就是使用變數來動態控制陣列大小,事先定義一個變數,通過使用者的輸入來決定這個陣列到底有多大,這樣避免了記憶體空間的浪費或者索引超出陣列界限的情況出現。另外,由使用者來決定陣列大小也是要事先設定好上限的,否則使用者惡意開銷陣列空間必然會導致宕機。

通常就是定義一個常量,這樣將來的程式的可讀性好、並且可移植性也好,以 c 語言為例,可以如下定義:#define max 30 /* 定義一個元素個數為 30 的常量,將來如果元素個數需要增減、或者減少,都可以根據具體需要修改這一處,而程式中其他所有涉及到的 max 都自動修改成新的數值,程式的可移植性好。

提問謝謝

回答好的,如果滿意請給小明老師贊喲

更多4條

怎麼解決 索引超出了陣列界限,索引超出陣列界限,該怎麼解決

索引超出了陣列界限 並不是說索引有多長,而是說這個索引在陣列的界限當中找不到,在樓主的 中,無法保證string args 一定有值 即可能不存在args 0 如果樓主是想在string args有值的情況下才輸出第一個引數的話,可以改成 class program strname 格式化輸出第一個...

vb有幾種方法輸入陣列,vb中這兩種定義陣列方式有什麼區別

這跟vb無關,就看設計了。方法多的是 vb中這兩種定義陣列方式有什麼區別?簡單的說吧 就是dim 和 redim 的區別如果我 修改成這樣 你就好理解了 dim arr3 1 to 4 arr3 array 1,4,2,8,9,10 arr3固定陣列只能有4個元素 而array有6個引數 要返回6個...

vb中陣列array如何轉化成字串

用str 函式,比如 來str 2 就是把整數型資料 自2轉化成字元型別的 2 要轉化陣列,直接將括號裡的內容改為陣列就可以了,比如定義的一維陣列m 5 那麼就是str m x x 0,1,2 5.用join函式,比如 dim arr s arr array 1,2,3,4,5 s join arr...