2017-10-17 66 views
0
 For x = 0 To n - 1 

     str = Lines(x, 0) 
     For g = 1 To 29 
      str = (str + Lines(x, g)) 
     Next 
     For y = 0 To 899 
      patternarr(y) = CInt(Mid(str, y + 1, 1)) 


     Next 
     Pattern(x) = patternarr 

    Next 

Pattern()是Jagged整數數組。 Patternarr是一個整數數組。 這是一個Patternarr循環的一部分,它改變每個循環,x增加1. 問題在於,出於某種原因,每個循環,Patten()中的所有數組都被patternarr所取代。Jagged Array不斷更改所有陣列

+0

包括多一點的代碼;這不足以查看發生了什麼。 – Darryl

+0

那個小小的片段並沒有告訴我們很多。最有可能的是你在鋸齒陣列中反覆存儲相同的數組。請閱讀[問]並參加[旅遊] – Plutonix

回答

2

數組是參考類型,因此Pattern的每個元素都保持對同一個patternarr的引用。換句話說,Pattern(x) = patternarr不會複製patternarr,它只是指向現有的patternarr。因此,無論何時您對patternarr進行更改,該更改都會反映在Pattern的每個元素中。如果你想的Pattern每個元素是獨立的,您必須保存它們Pattern使patternarr副本:

Pattern(x) = patternarr.Clone()