看板 C_and_CPP 關於我們 聯絡資訊
爬文結果,大多是一維或非結構,所以自己試寫一下 目的:把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
james732:看不太懂你想要做的事情是什麼…? 09/04 16:11
VictorTom:state是一個pointer, 沒有自己的實體空間, 要嘛不要用* 09/04 16:18
VictorTom:那麼可以state.seed, 要嘛你要malloc/new幫它要一個空間 09/04 16:19
VictorTom:不然你這樣只是存取了一個不知道在哪裡的指標, 是應該要 09/04 16:19
VictorTom:access violation / run time error的....@_@" 09/04 16:19
chrisjon:那請問一下,如果原始一維陣列已經可以使用,轉成二維陣列 09/04 16:25
VictorTom:struct裡只要memory塞的下, 要幾維都沒關係吧.... 09/04 16:26
VictorTom:問題1. 你state只是一個指標, 你不能在未分配空間之前就 09/04 16:26
VictorTom:直接access它的member; 又, 你的seed看起來也宣告成了指 09/04 16:26
VictorTom:標型式, 這裡看起來不太有意義, seed應該只是二維的b64 09/04 16:27
VictorTom:array而已吧?? 09/04 16:27
※ 編輯: chrisjon 來自: 123.195.137.179 (09/04 16:29)
chrisjon:嗯嗯!我看書上沒寫到malloc/new相關的字樣,所以也不太清 09/04 16:37
chrisjon:楚。不過想到一個替代方案了,感謝前輩的解釋(m_ _m) 09/04 16:38