1樓:
使用 preserve,只能調整陣列最後一維的大小。
dim p() as byte
redim preserve p(1, 3)redim preserve p(1, 4)或。dim p() as byte
redim p(3, 3)
redim p(2, 4)
都是正確的。
只有上面2種定義是正確的,這是vb規定的。
解決方法可以定義成最後一維可變,其他維不變的形式:
redim preserve p(1, 3)redim preserve p(1, 4)如果實在定義不了的話,利用臨時陣列儲存資料,然後不用preserve,再把臨時陣列資料轉回p陣列:
dim p() as byte ,dim q() as byteredim preserve p(3, 1)redim q(3,1)
...p陣列資料轉至q陣列中。
redim p(4, 1)
...q陣列資料轉至回p陣列中。
2樓:匿名使用者
這個方法絕對可行的啊!
我想不出什麼更好的辦法了。
能解決問題不就是最終的目的嗎?
現在這個目的已經達到了。
試試這個方法吧。**如下。
dim p() as byte
redim preserve p(3, 1)dim c(3, 1) as byte, i as integer, j as integer
for i = 0 to 3
for j = 0 to 1
c(i, j) =p(i, j)
nextnext
redim p(4, 1)
for i = 0 to 3
for j = 0 to 1
p(i, j) =c(i, j)
nextnext
erase c
3樓:匿名使用者
同樣的問題同樣困擾著我。
陣列下標越界是怎麼回事啊?
4樓:王鵬翔
原因是這樣的:
inta[10];這是一個整型的陣列a,有10個元素:a[0]-a[9],因為正確的下標應該是從0開始,到9結束,與生活習慣中的1-10不一樣,於是產生一個a[10]的錯誤,即陣列下標越界。
c和c++語言中陣列下標越界,編譯器是不會檢查出錯誤的,但是實際上後果可能會很嚴重,比如程式崩潰等,所以在日常的程式設計中,程式設計師應當養成良好的程式設計習慣,避免這樣的錯誤發生。
若網頁時提示「陣列下標越界」,除檢查下上述問題外,再檢查下檔案中變數名稱是否一致,很多時候是變數名稱不一致所致。
c如何定義陣列下標
c c 中的下標,必須從0開始。比如int a 10 那麼下標範圍是0到9,你如果想用其它範圍去遍歷,專只好減去或加屬上一個數。比如用1到10去遍歷,for i 1 i 10 i a i 1 i 反正,下標範圍是0到9,這是變不了的。當然你可以定義一個指標p,指向陣列a的中間元素,那麼訪問下標就相應...
如何獲取多維陣列某個特定鍵陣列下標的所有值
這個只復 能通過一個變 制量累加,然後從中bai分解出下標值 k 0for each myd in tdata i k ubound tdata,1 lbound tdata,1 1 第一維下du標值 j k mod ubound tdata,2 lbound tdata,2 1 第二zhi維下標值...
如果設陣列變數為,那麼陣列這下標是不是1到10裡面的其中呢,陣列和下標是怎麼
程式語言裡面 陣列裡面的下標很多是從0開始的 而不是從1開始的 因此如果一個陣列有10個變數 在大多數程式語言裡面 陣列的下標是0到9 int a 10 這個陣列怎麼是10個元素?不是從0到10,應該11個元素嗎?int a 10 後面的是說的陣列大小不是最大下標一般下標是從0開始 也就是第一個元素...