不要猜想二維陣列可以用pointer to pointer 來傳遞; D(13). ... 說明:如果是用C++, 請多多利用inline function 來取代上述的macro,以免除macro 定義的種種危險性。 ... <看更多>
二維陣列 call by reference 在 SSYU 的書們| 陣列 的推薦與評價
C 語言以連續的記憶體空間來表達陣列,多維陣列的地址運算採用row major 的方式。 ... Java 陣列物件是只能儲存基本資料型態或reference 的一維陣列,二維以上的陣列 ... ... <看更多>
二維陣列 call by reference 在 Re: [問題] 如何讓函數回傳二維陣列? - 看板C_and_CPP 的推薦與評價
其實我覺得不用特別想得很複雜阿 (不用C++ Ref)
像是平常我有一個整數,希望傳進參數,又有in/out的效果
那就用個指標去接他,改 dereference 的內容就好啦
void foo(int *p) {
// do something on *p
}
所以二維陣列也同理
void foo(int (*p)[dim_x][dim_y]) {
// do something on *p
}
這樣就好啦 @_@
不過我個人也是建議包成 struct 來用方便省事
※ 引述《flydragon198 (知音難尋)》之銘言:
: 其實你如果只是要處理過後的資料,不需要回傳二維陣列
: int data_value[10][10];
: int process (int[][]& datavalue); //沒compiler不知道這樣宣告是不是對的
: 將你要處理的二維陣列以參數reference傳入,處理完後return true;這樣就好了
: ※ 引述《atomuu (小原子)》之銘言:
: : 開發平台(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: 114.36.169.179
... <看更多>