在C程序中的函数中传递一个2D数组
发布时间:2020-12-16 03:32:29 所属栏目:百科 来源:网络整理
导读:下面的程序(将数组传递给函数的玩具程序)不编译. 请解释一下,为什么编译器无法编译(由于技术原因还是因为标准原因)? 我还会看一些解释指针/多维数组的书(因为我对这些数组是不稳定的),但是这里的任何现成的指针都应该是有用的. void print2(int ** array,in
下面的程序(将数组传递给函数的玩具程序)不编译.
请解释一下,为什么编译器无法编译(由于技术原因还是因为标准原因)? 我还会看一些解释指针/多维数组的书(因为我对这些数组是不稳定的),但是这里的任何现成的指针都应该是有用的. void print2(int ** array,int n,int m); main() { int array[][4]={{1,2,3,4},{5,6,7,8}}; int array2[][2]={{1,2},{3,6},{7,8}}; print2(array,4); } void print2(int ** array,int m) { int i,j; for(i=0;i<n;i++) { for(j=0;j<m;j++) printf("%d ",array[i][j]); printf("n"); } } 解决方法
这个(像往常一样)在
c faq中解释.简而言之,一个数组衰减到一个指针只有一次(在它衰减后,结果指针不会进一步衰减).
最简单的方法来解决它: int **array; /* and then malloc */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |