易語言,說陣列引用陣列成員下標出錯,怎麼回事

2021-03-19 18:33:33 字數 2247 閱讀 7391

1樓:司馬鑄劍

1,原因:因為取出的陣列成員不存在,假設要取的陣列只有2個成員,取了第3個成員回,那樣肯定會提示這種答錯誤的。

2,一般的易語言程式設計師會在用正規表示式、分割文字,從網路中獲取文字進行分割時出現陣列成員引用下標超出定義範圍。

3,防範方法很簡單,就是在取陣列成員的時候先判斷一下陣列成員數是否正常。

需要用到的命令是,取陣列成員數(),易語言中有該函式的詳細說明。

易語言 陣列成員引用下標超出定義範圍

2樓:d塵封de青春

這是因為所取值的範圍超出了資料庫裡的資料,就是沒有依靠資料庫中的資料取值,這樣肯定會出現這種提示,比如資料庫裡只有兩個資料1和2,但是所程式設計的程式裡取值3,這樣就會導致資料庫識別不出,然後呈程式中斷

一般的易語言程式設計師會在用正規表示式、分割文字,從網路中獲取文字進行分割時出現陣列成員引用下標超出定義範圍

擴充套件資料

可以採用如下建議防止陣列成員引用下標超出定義範圍導致程式意外退出

方法很簡單,就是在取陣列成員的時候先判斷一下陣列成員數是否正常。你需要用到的命令是,取陣列成員數(),易語言中有該函式的詳細說明!

舉個例子:

我們想採集某個**的內容,這個**內容包含的有標題、作者、釋出時間、內容。我們用正規表示式採集的時候發現程式提示陣列成員引用下標超出定義範圍

解決方法是在我們要取正規表示式獲取的內容之前先判斷一下取陣列成員數是否等於4,如果等於4我們就直接取內容,如果不等於4那麼我們只取3個內容,自己把作者補起來,或者直接跳過該頁面去取正常格式的**內容。

3樓:匿名使用者

1、這裡說的是要取的陣列元素,在陣列中不存在。

2、比如定義了一個5元素的陣列,用得時候去取第6個元素,就會造成上述錯誤。

3、另外,e語言陣列下標是從1開始的,如果取第0個元素,也是錯的。

4、圖示:

5、修改方法:取定義範圍內的元素或擴大陣列範圍。

4樓:匿名使用者

按照你說的,如果是提示陣列成員引用下標超出定義範圍的話,應該是返回陣列的問題,一旦返回陣列的成員不到3個,那麼你寫的返回陣列 [3]就會提示那樣的錯誤,你檢查下返回陣列的成員數吧。

5樓:匿名使用者

錯誤原因:你的」大體**內容「這個位元組集估計是空的(沒有獲取到),或者中間沒有中文冒號這個位元組集,這樣的話分割之後肯定就不成為陣列了對吧,也就是陣列成員數為0,而你下一行**直接使用了 分割內容[1],引用了一個不存在的陣列元素,肯定會錯誤。

改進方法:

在使用分割內容[1]之前,先檢查陣列的成員數,用命令「取陣列成員數()」即可,然後判斷它的值是不是>0,然後再引用陣列元素。(以後程式設計使用陣列前都要檢查,這樣不容易出bug。)

如果你的大體**內容肯定是含有中文冒號這個位元組集的...那就是你之前的取回資料那裡出了故障,取回的資料是空的..檢查檢查。

但是也要看看方法1中,最好寫一個異常處理,否則一旦崩潰程式就掛了。

全手打。望採納!

6樓:匿名使用者

1l說的很詳細,簡單點說就是因為沒有分割到東西,所以這個陣列是空陣列(0),下標為1就超出範圍報錯了.

易語言陣列成員引用下標超出定義範圍 求解決啊~

7樓:匿名使用者

錯誤原因:你復

的」大制體**內容「這個位元組集估bai計是空的(沒有獲取du到),

zhi或者中間沒有中文冒號這dao個位元組集,這樣的話分割之後肯定就不成為陣列了對吧,也就是陣列成員數為0,而你下一行**直接使用了 分割內容[1],引用了一個不存在的陣列元素,肯定會錯誤。

改進方法:

在使用分割內容[1]之前,先檢查陣列的成員數,用命令「取陣列成員數()」即可,然後判斷它的值是不是>0,然後再引用陣列元素。(以後程式設計使用陣列前都要檢查,這樣不容易出bug。)

如果你的大體**內容肯定是含有中文冒號這個位元組集的...那就是你之前的取回資料那裡出了故障,取回的資料是空的..檢查檢查。

但是也要看看方法1中,最好寫一個異常處理,否則一旦崩潰程式就掛了。

全手打。望採納!

8樓:匿名使用者

1l說的很詳細,簡單點說就是因為沒有分割到東西,所以這個陣列是空陣列(0),下標為1就超出範圍報錯了.

9樓:貢顏節香菱

陣列不能這樣賦值的。有個命令叫

加入成員(,)

c語言指標中多維陣列的引用aij表示

p i j 表示陣列a中元素a 首地址 i j a i j a i j 請問c 中指標與二維陣列,下面圖中程式裡的 p i 3 j 是什麼意思啊?謝謝 20 這個利用的是二維陣列還是順序儲存的特點來直接計算a i j 的儲存位置 p i 3 j 就是a i j 因為p是指向首元素的元素指標,a每行有...

C語言新手陣列問題,C語言陣列問題

a i j a i j 理解運算優先順序就好了,裡面的那個括號 可有可無 原解析有誤。二維陣列其實就是i個具有j個元素的一維陣列,因此a i j a i j a i j c語言陣列問題 你的 問題有以下幾個 1 min和max沒有初始化 2 對於a min 和a max 沒有做迴圈參考 如下 inc...

C語言陣列下標,C語言陣列的下標

下標可以是變數 也可以是常量。直接說a 0 a 1 a 2 a 3 這樣的下標就是常量。對於訪問來說,不在意是變數還是常量,系統只是需要一個值,作為偏移量 不管是變數還是常量,訪問的時候 肯定是一個特定值,而系統要的 無非是這樣一個偏移量而已。c語言陣列的下標 樓主你好。注意a是常量,不要被別人誤導...