看板 C_and_CPP 關於我們 聯絡資訊
我有個三維陣列 red[600][320][240] 然後要將這個陣列傳給副程式int fun(); 我寫成 fun(red); int fun( int *** red) 可是學長說我這樣寫不對,得要在陣列前加上& int fun(int *** &red) 但是跑出來的結果都是相同的,是巧合嗎? 我想問這種寫法兩個有什麼差別呢? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.3.135
ilway25:學長怪怪的 02/19 19:16
zlw:我測是要這樣 int fun( int red[600][320][240] ) 編譯才會過 02/19 19:38
zlw:想起來是為什麼了,因為我編譯成C++會檢查資料型態才過不了.. 02/19 19:59
WPC001:我也覺得學長怪怪的... 兩個應該是都對, 但應該常寫第一種 02/20 00:28
WPC001:但兩者意義不同, 而我想不到有人會去改"陣列"的位置嘛? 02/20 00:30
WPC001:這是陣列, 不是指標... XD XD 02/20 00:30
HudsonE:我個人認為這是 C/C++ 隱藏的型別文法不一致性造成... ... 02/20 10:19
sunneo:兩個都對感覺才是奇怪呢 [] [] [] 是以位移算的 02/20 18:39
sunneo:*** 則是對指標deref 後取得實體位址 02/20 18:40
zlw:他可能是用new int去建立red的三維陣列,但是內文沒寫清楚 02/20 22:06