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

作者: longted3 (LONGTED)   2014-07-21 02:36:29
請教一下二維矩陣相關問題 底下是我的簡單地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 回來的二維矩陣
請不要回我宣告成全域變數不就好了 謝謝
作者: longted3 (LONGTED)   2014-07-21 02:45:00
問題 1以解決 爬文找到的
作者: lNishan (紫小霓)   2014-07-21 02:54:00
開Struct或Class, 2維陣列丟進去
作者: q82419 (q82419)   2014-07-21 03:13:00
置底13誡 第12
作者: EdisonX (卡卡獸)   2014-07-21 03:14:00
提外話,該用 typedef 時就別省,寫得出來不代表大家都懂.
作者: wope (獨立黑色色彩)   2014-07-21 03:32:00
問個不相關的 如果哪天要aa[8][8]後面函數都要重寫?size of matrix 也一起傳吧另外.傳出去後能不能修改?(保護原矩陣資料)再者,以後希望傳多大?10x10?4800x4800(x86上限)?16000x16000?80000x80000(目前個人電腦記憶體上限)?還是300kx30k(約600G)?要傳大矩陣有其他的方法最後要傳什麼就宣告什麼. 你要回傳int**aaa,就宣告int***set((...){int **bbb;...retuen bbb;}但這樣寫會有記憶體回收問題.指標沒有NULL;反正矩陣小沒差
作者: q82419 (q82419)   2014-07-21 13:25:00
突然想起來這個問題以前有人問過了我有貼過struct的寫法 #1JMxpaku
作者: Killercat (殺人貓™)   2014-07-21 13:57:00
不要用傳回直傳回malloc出來的指標這種malloc/free在不同scope式高危險行為讓外面傳入一個malloc好的指標根長度才是正確的另外這基本上已經違反置底13戒之12了
作者: tjjh89017 (伊達政宗)   2014-07-21 17:54:00
我覺得二維陣列可以用爛招傳進去XD當一為陣列來用XD

Links booklink

Contact Us: admin [ a t ] ucptt.com