Re: [問題] 請教關於指標的一個笨問題...

看板C_and_CPP (C/C++)作者 (哈哈哈哈哈哈哈哈哈哈哈)時間16年前 (2009/08/11 11:04), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串4/4 (看更多)
我只能根據我知識所及, 稍微說明一下 解決辦法仍有待板上其他人來幫忙了 : const unsigned int uArray04A[23][21] = { ... }; : const unsigned int uArray04B[23][21] = { ... }; : const unsigned int uArray04C[23][21] = { ... }; : const unsigned int uArray04D[23][21] = { ... }; : const unsigned int uArray05A[25][23] = { ... }; : const unsigned int uArray05B[25][23] = { ... }; : const unsigned int uArray05C[25][23] = { ... }; : const unsigned int uArray05D[25][23] = { ... }; : 矩陣大小是不固定的, 不過都是二維 : 但是想要用索引的方式 : Ptr[index] = .... : 藉由 Ptr[index] index=0; index++; 的方式 : 分別將每個 uArray[][]的 address取出 uArray04X(X for A, B, C, D)的型態是相同的 但uArray04X與uArray05X的型態是不同的 所以uArray04X與uArray05X沒辦法裝在同一個陣列Ptr[]中 如果想維持類似的做法, 可能要去STL找個適合的容器 : 然後再將每個 uArray[][] 的內容 : copy到一個共用的全域矩陣 g_uGobalArray[i][j]; : 實際的對每個矩陣元素的存取再由 g_uGobalArray[i][j]來存取 我猜想你應該不想把uArray中的內容一個一個抓出來放入g_uGobalArray[i][j] 而是想用一個指標g_uGobalArray可以指向不同的uArray 不過型態不同的問題一樣還在 所以g_uGobalArray無法兼顧能指向uArray04X又能指向uArray05X 除非有辦法做一些型別轉換的動作, 但我不確定能不能轉 大致上是這樣 我能想到的辦法很普通, 會包含一長串的switch case去判斷型別之類的 不怎麼漂亮, 我也不太喜歡這種作法, 應該有更好的方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.209.20.225

08/11 11:15, , 1F
最簡單的方法是把所有的uArrayXXX變一樣大XD
08/11 11:15, 1F

08/11 11:34, , 2F
存的時候 cast 成 char * 存, 但也把 size 存起來
08/11 11:34, 2F

08/11 11:35, , 3F
用的時候依 size 再 cast 回原本的型別 & copy 到 global
08/11 11:35, 3F

08/11 11:41, , 4F
謝謝S大的解說,因為後來還是需要一個2D Array來作處理,所以
08/11 11:41, 4F

08/11 11:42, , 5F
把內容值Copy到g_uGonalArray是可以的,反正之後需要處理2D
08/11 11:42, 5F

08/11 11:43, , 6F
Array, 所以現在只好另外想辦法,把每個copy寫成function,再
08/11 11:43, 6F

08/11 11:43, , 7F
作成 function pointer array, 再依需求執行 function了!
08/11 11:43, 7F
文章代碼(AID): #1AWD-XDN (C_and_CPP)
文章代碼(AID): #1AWD-XDN (C_and_CPP)