作者:
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
不要用傳回直傳回malloc出來的指標這種malloc/free在不同scope式高危險行為讓外面傳入一個malloc好的指標根長度才是正確的另外這基本上已經違反置底13戒之12了
我覺得二維陣列可以用爛招傳進去XD當一為陣列來用XD