[問題] 二維矩陣相關問題

看板C_and_CPP作者 (大頭看不起我恨阿)時間10年前 (2014/07/21 02:36), 編輯推噓4(4017)
留言21則, 7人參與, 最新討論串1/1
請教一下二維矩陣相關問題 底下是我的簡單地code int **SET(int *test)//要回傳二維矩陣 funtion該如何宣告 {//function 就是把test 中每個值都設成一 然後回傳 for(int i=0;i<10;i++) for(int j=0;j<10;j++) test[i][j]=1; return test } int _tmain(int argc, _TCHAR* argv[]) { int test[10][10]; for(int i=0;i<10;i++) for(int j=0;j<10;j++) test[i][j]=0;//initial int **aaa=SET(test);//test 是一個二維矩陣 該如何傳入finction 中 //回傳是一個二維矩陣 該宣告甚麼type接 return 0; } 我的問題有三個 雖然我有註解 不過還是簡單的整理出來 1.test 是一個二維矩陣 該如何傳入finction 2.要回傳二維矩陣 funtion該如何宣告 3 int **aaa 該宣告成甚麼type 才可以接 SET function 回來的二維矩陣 請不要回我宣告成全域變數不就好了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.166.75 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1405881391.A.2FD.html

07/21 02:45, , 1F
問題 1以解決 爬文找到的
07/21 02:45, 1F

07/21 02:54, , 2F
開Struct或Class, 2維陣列丟進去
07/21 02:54, 2F

07/21 03:13, , 3F
置底13誡 第12
07/21 03:13, 3F

07/21 03:14, , 4F
提外話,該用 typedef 時就別省,寫得出來不代表大家都懂.
07/21 03:14, 4F

07/21 03:32, , 5F
問個不相關的 如果哪天要aa[8][8]後面函數都要重寫?
07/21 03:32, 5F

07/21 03:33, , 6F
size of matrix 也一起傳吧
07/21 03:33, 6F

07/21 03:39, , 7F
另外.傳出去後能不能修改?(保護原矩陣資料)
07/21 03:39, 7F

07/21 03:44, , 8F
再者,以後希望傳多大?10x10?4800x4800(x86上限)?16000x16000?
07/21 03:44, 8F

07/21 03:48, , 9F
80000x80000(目前個人電腦記憶體上限)?還是300kx30k(約600G)?
07/21 03:48, 9F

07/21 03:51, , 10F
要傳大矩陣有其他的方法
07/21 03:51, 10F

07/21 03:58, , 11F
最後要傳什麼就宣告什麼. 你要回傳int**aaa,就宣告int***set(
07/21 03:58, 11F

07/21 03:59, , 12F
(...){int **bbb;...retuen bbb;}
07/21 03:59, 12F

07/21 04:11, , 13F
但這樣寫會有記憶體回收問題.指標沒有NULL;反正矩陣小沒差
07/21 04:11, 13F

07/21 13:25, , 14F
突然想起來這個問題以前有人問過了
07/21 13:25, 14F

07/21 13:25, , 15F
我有貼過struct的寫法 #1JMxpaku
07/21 13:25, 15F

07/21 13:57, , 16F
不要用傳回直傳回malloc出來的指標
07/21 13:57, 16F

07/21 13:57, , 17F
這種malloc/free在不同scope式高危險行為
07/21 13:57, 17F

07/21 13:59, , 18F
讓外面傳入一個malloc好的指標根長度才是正確的
07/21 13:59, 18F

07/21 14:01, , 19F
另外這基本上已經違反置底13戒之12了
07/21 14:01, 19F

07/21 17:54, , 20F
我覺得二維陣列可以用爛招傳進去XD
07/21 17:54, 20F

07/21 17:54, , 21F
當一為陣列來用XD
07/21 17:54, 21F
文章代碼(AID): #1Jp0mlBz (C_and_CPP)