[問題] 如何讓函數回傳二維陣列?

看板C_and_CPP作者 (小原子)時間15年前 (2011/01/02 02:00), 編輯推噓4(4011)
留言15則, 7人參與, 最新討論串1/3 (看更多)
開發平台(Platform): (Ex: VC++, Gcc, Linux, ...) Linux 額外使用到的庫(Library Used) (Ex: OpenGL, ...) no 問題(Question): 我在想到底要如何宣告回傳二維陣列的函數 int[][] ABC(int X[][10]) int X[][10]是傳入二維陣列的方法 好像問題出在int[][] 請問宣告回傳二維陣列的函數不是int[][]這樣宣告嘛? 查了幾本書都沒有說這樣要怎麼寫= = 餵入的資料(Input): 以上的宣告方式 預期的正確結果(Expected Output): 應該要可以編譯 錯誤結果(Wrong Output): 編譯錯誤 error: array type has incomplete element type 程式碼(Code): (請善用置底文標色功能) 上面的程式碼 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.119.144

01/02 02:12, , 1F
傳回 int** ABC(...) 試試
01/02 02:12, 1F

01/02 02:13, , 2F
不過你裡面的動作到底是要幹嘛?(上面如果是傳回local
01/02 02:13, 2F

01/02 02:14, , 3F
variable 會出錯)
01/02 02:14, 3F

01/02 02:23, , 4F
我要回傳處理過後的二維陣列X
01/02 02:23, 4F

01/02 02:24, , 5F
不過為什麼會有問題呢?
01/02 02:24, 5F

01/02 04:49, , 6F
做不到,你要用struct包起來,或是回傳pointer
01/02 04:49, 6F

01/02 04:49, , 7F
要注意pointer和陣列並不相同
01/02 04:49, 7F

01/02 06:40, , 8F
置底文 13 戒 之 12 去看完
01/02 06:40, 8F

01/02 10:52, , 9F
為什麼要回傳?
01/02 10:52, 9F

01/02 11:07, , 10F
應該要丟pointer給函式吧 參數丟int**
01/02 11:07, 10F

01/02 12:02, , 11F
先搞清楚你要回傳的動機, 是要玩連續的函式呼叫嗎
01/02 12:02, 11F

01/02 18:34, , 12F
try this int (*ABC(int X[][10])) [10]
01/02 18:34, 12F

01/03 00:59, , 13F
對 我要連續的函數呼叫~遞迴
01/03 00:59, 13F

01/03 11:02, , 14F
結果放在引數裡面不行嗎?
01/03 11:02, 14F

01/03 11:03, , 15F
這個想法看來.. 你是要寫 det 嗎?
01/03 11:03, 15F
文章代碼(AID): #1D7slRP1 (C_and_CPP)
文章代碼(AID): #1D7slRP1 (C_and_CPP)