|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
变长二维数组有办法作为函数的参数吗?
- int arr[row][col];
- han(arr); // arr作为参数
- void han(int (*arr)[?]) // 定义是这个列要怎么办?
复制代码
你可以以指针的形式传递数组,同时把行列值当做参数传递进去啊
给你写两种方式,一种是传二维指针,一种是传一维指针
- #include <stdio.h>
- int fun(int**a,int r,int c)
- {
- for(int i=0;i<r;i++)
- {
- for(int j=0;j<c;j++)
- printf("%d ",*((int*)a+i*c+j));
- printf("\n");
- }
- return 0;
- };
- int main()
- {
- int a[2][3]={0};
- int r=2,c=3;
- for(int i=0;i<r;i++)
- for(int j=0;j<c;j++)
- a[i][j]=i*c+j;
- fun((int**)a,r,c);
- return 0;
- }
复制代码
- #include <stdio.h>
- int fun(int*a,int r,int c)
- {
- for(int i=0;i<r;i++)
- {
- for(int j=0;j<c;j++)
- printf("%d ",*(a+i*c+j));
- printf("\n");
- }
- return 0;
- };
- int main()
- {
- int a[2][3];
- int r=2,c=3;
- for(int i=0;i<r;i++)
- for(int j=0;j<c;j++)
- a[i][j]=i*c+j;
- fun((int*)a,r,c);
- return 0;
- }
复制代码
|
|