[问题] 二维矩阵相关问题

楼主: 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