作者MaxHaru (懂得放手..才是王道)
看板C_and_CPP
標題[問題] 關於二維陣列
時間Sun Dec 4 14:36:58 2016
請教一個關於陣列的問題, 說明如下,
我有兩個二維陣列
unsigned char arr1[2][2] = {{1,2},{3,4}};
unsigned char arr2[2][2] = {{5,6},{7,8}};
我想用另一個陣列將兩個二陣列的位置存起來, 該如何宣告變數型態
unsigned char**pArr[2] = {arr1, arr2}; //不確定這樣宣告對不對..
我想再用一個變數將pArr中的二維陣列位址取出來並當二維陣列一樣使用
unsigned char**Var; //不確定是否正確
Var = pArr[0]; //不確定是否正確
printf("%d", Var[0][0]);
以上, 我有試著在Ideone上跑跑看(
http://ideone.com/jUPUp9 )
compile沒有問題, 但執行時會出現誤會訊息..
請問是否哪個地方用錯了?
謝謝..
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.217.175
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1480833421.A.4D1.html
1F:→ stupid0319: 用錯了,直接arr1,arr2來存取就好了XD,下面通通刪掉 12/04 14:45
2F:推 steve1012: 要三個星星 12/04 14:58
3F:→ steve1012: 你把pArr改三個星星 12/04 14:59
4F:推 steve1012: 呃然後前面也要改 12/04 15:02
5F:→ stupid0319: 用雙重指標來存取二維陣列?別浪費生命了...... 12/04 15:07
6F:→ stupid0319: 陣列跟指標還是有所不同的,不能這樣搞 12/04 15:08
7F:推 steve1012: 不能? 12/04 15:14
8F:推 CoNsTaR: 13 戒之 12 不管幾維陣列都是一個 star 12/04 15:15
9F:→ CoNsTaR: c/c++ 的陣列和 Java 的不一樣 12/04 15:16
10F:推 steve1012: 喔喔我錯了Qq 12/04 15:18
11F:推 steve1012: 我只是在想要是你是在用pointer 模擬的話做的到 但就 12/04 15:20
12F:→ steve1012: 不是陣列 12/04 15:20
13F:→ MaxHaru: 謝謝大家的回應, 因為實際應用上2維陣列還蠻多的, 12/04 15:37
14F:→ MaxHaru: 又需要透過index去調用, 所以須要用一個陣列來處理, 12/04 15:38
15F:→ MaxHaru: 請問一下有其它的方法可以做到類似的功能嗎? 12/04 15:39
16F:推 DrizzleX: 痾 你是想兩個綁在一起嗎 那試試看struct 12/04 16:06
17F:推 CoNsTaR: T a[N], b[N]; 12/04 16:13
18F:→ CoNsTaR: T* p[2] = {a,b}; 12/04 16:13
19F:→ CoNsTaR: 你是想把兩個陣列當作一個用,像這樣? 12/04 16:13
20F:→ MaxHaru: 預期做法是"pArr[n]"這個陣列存的是2維陣列的位址.. 12/04 16:16
21F:→ MaxHaru: Var從pArr[n]取出來之後, 可以像Var[1][2]來使用二維陣列 12/04 16:19
22F:推 CoNsTaR: 可以做到,但是沒有你想像的那麼方便 建議先學資料結構 12/04 16:30
23F:→ CoNsTaR: T a[M][N], b[M][N]; 12/04 16:30
24F:→ CoNsTaR: T* p[M] = {a[0],..,a[M-1]}; 12/04 16:30
25F:→ CoNsTaR: T* q[M] = {b[0],..,b[M-1]}; 12/04 16:30
26F:→ CoNsTaR: T** r[2] = {p,q}; 12/04 16:30
27F:→ stupid0319: 明明就直接用arr1,arr2存取就好了,為什麼要化簡為繁? 12/04 16:35
28F:→ CoNsTaR: 樓上 我是覺得原 Po 如果藉由這個例子能弄清楚陣列和指 12/04 16:41
29F:→ CoNsTaR: 標的關係其實是滿值得的啦 12/04 16:41
30F:→ stupid0319: 好吧,多寫一些自虐的CODE真的會變強嗎XD 12/04 16:45
31F:推 chuegou: 會阿 心理會變強(笑) 12/04 18:41
33F:→ hunandy14: 你是想要這樣吧~不過我覺得優化一下會比較好~~ 12/04 19:00