[語法] 結構、指標 與 二維陣列

看板C_and_CPP (C/C++)作者 (蟲蟲終於找到你家)時間16年前 (2009/09/04 16:06), 編輯推噓2(2011)
留言13則, 3人參與, 最新討論串1/1
爬文結果,大多是一維或非結構,所以自己試寫一下 目的:把seed寫在結構中(有需要用到) 然後把seed設定二維陣列 下面程式只是純粹測試state->seed[a][b]有無辦法使用 ====================================== #include <stdio.h> typedef unsigned long long b64; typedef struct { int mcgi,flaga,flagb; b64 *seed[2][97]; }tt_index; int main(void) { tt_index *state; state->seed[1][1] = 5; printf("state->seed[1][1]=%d\n", state->seed[1][1]); return; } ====================================== 爬文看到有人直接把一維寫在struct裡,所以在struct裡設二維試試 compile能過,但是執行卻失敗了 或者需要設定二(多)層指標嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.137.179

09/04 16:11, , 1F
看不太懂你想要做的事情是什麼…?
09/04 16:11, 1F

09/04 16:18, , 2F
state是一個pointer, 沒有自己的實體空間, 要嘛不要用*
09/04 16:18, 2F

09/04 16:19, , 3F
那麼可以state.seed, 要嘛你要malloc/new幫它要一個空間
09/04 16:19, 3F

09/04 16:19, , 4F
不然你這樣只是存取了一個不知道在哪裡的指標, 是應該要
09/04 16:19, 4F

09/04 16:19, , 5F
access violation / run time error的....@_@"
09/04 16:19, 5F

09/04 16:25, , 6F
那請問一下,如果原始一維陣列已經可以使用,轉成二維陣列
09/04 16:25, 6F

09/04 16:26, , 7F
struct裡只要memory塞的下, 要幾維都沒關係吧....
09/04 16:26, 7F

09/04 16:26, , 8F
問題1. 你state只是一個指標, 你不能在未分配空間之前就
09/04 16:26, 8F

09/04 16:26, , 9F
直接access它的member; 又, 你的seed看起來也宣告成了指
09/04 16:26, 9F

09/04 16:27, , 10F
標型式, 這裡看起來不太有意義, seed應該只是二維的b64
09/04 16:27, 10F

09/04 16:27, , 11F
array而已吧??
09/04 16:27, 11F
※ 編輯: chrisjon 來自: 123.195.137.179 (09/04 16:29)

09/04 16:37, , 12F
嗯嗯!我看書上沒寫到malloc/new相關的字樣,所以也不太清
09/04 16:37, 12F

09/04 16:38, , 13F
楚。不過想到一個替代方案了,感謝前輩的解釋(m_ _m)
09/04 16:38, 13F
文章代碼(AID): #1AeCgCuD (C_and_CPP)
文章代碼(AID): #1AeCgCuD (C_and_CPP)