|  | 
 
| 
变长二维数组有办法作为函数的参数吗?
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;
}
 | 
 |