推 steve1012: 和不用 vector<vector<maze>>01/10 03:41
因為新手還是覺得array最直觀 哈哈
晚點來試試 vector
→ kzeratal: 二維陣列是兩個星星01/10 04:04
但是我改成這樣
https://ideone.com/q3tsem
還是會有錯
錯誤訊息:cannot convert Maze (*)[(y + 1)] to‘Maze** for argument‘1' to‘
void check_consistent(Maze**, int, int)’
是不是跟我array大小是變動的有關
推 chuegou: 用指標傳01/10 08:42
請問我這樣不是用指標傳嗎
還是我哪裡誤會了
→ Killercat: 也許當初語法糖這東西真的害人不淺 XD01/10 09:53
→ loveflames: 如果不用STL,可以傳陣列的reference01/10 15:10
但是據我所知 call by reference
他的陣列大小要是固定的
但是我的陣列大小是讓使用者隨機輸入的
這樣可以嗎
※ 編輯: cozychocolat (140.114.79.52), 01/10/2018 16:05:52
→ loveflames: 隨機輸入就不是嚴格意義的陣列了,請用vector01/10 16:17
好的 我會試試
→ steve1012: one.com/Cq75my01/10 16:46
真的是太感謝了 我會好好研究
※ 編輯: cozychocolat (140.114.79.52), 01/10/2018 16:56:40
推 idiont: 傳array的時候只有最高維可以不用知道大小01/10 21:52
→ loveflames: 因為那個實際上不是傳陣列,只是傳指標01/10 22:11
推 dzwei: 你函數宣告要寫成01/13 02:11
→ dzwei: void check_consistent(struct Maze (* maze)[10], 01/13 02:11
→ dzwei: int y){ ... }01/13 02:11
→ dzwei: 那個10是maze[a][b]裡面的b,也就是array外層的大小01/13 02:12
→ dzwei: 參考本版C++新手13戒的第12條01/13 02:13
→ dzwei: 之所以要寫成struct Maze (* maze)是因為沒有那個括號的話01/13 02:13
→ dzwei: 就會變成(struct Maze *) maze01/13 02:14
→ dzwei: 兩者意義完全不一樣01/13 02:14
→ dzwei: 還有,我覺得check_consistent(maze, x, y);01/13 02:15
→ dzwei: 應該要放在for裡面01/13 02:15
→ dzwei: 其實前面x,y,num..那些沒有給初值,其實很危險01/13 02:16
→ dzwei: 一樣參考本版教條的第一條01/13 02:17
感謝以上各位大師的講解 我後來就改用vector寫了 也謝謝dzwei大最後給的建議
感謝各位幫忙
※ 編輯: cozychocolat (106.1.226.182), 01/14/2018 03:16:15
推 dzwei: 勘誤一下 01/14 03:53
→ dzwei: 「maze[a][b]裡面的b」 01/14 03:53
→ dzwei: 那個b是內層 01/14 03:53
→ hunandy14: 真要傳多多維度的不定陣列,可以用樣板 01/24 11:34
→ hunandy14: 總體來說還是跟上面大大一樣,建議用vector省事~ 01/24 11:36