二维数组 作为 参数传递

void func(char (*arr)[50], int n)
{
}

void func1(char arr[][50], int n)
{
}
void func2(char arr[100][50], int n)
{
}
int main()
{
    char arr[100][50] = {0};
    int n;

    scanf("%d", &n);

    func(arr, n);
    func1(arr, n);

    return 0;
}

二维数组作为函数参数传递时,以下格式正确

char (*word)[50]
char word[100][50] 或者 char word[][50]

当二维数组是动态申请的

void func(int **a, int m, int n)
{
}

int main()
{
    int **arr; //申请一个 3行2列 的二维数组
    int m = 3, n= 2;
    arr = (int **)malloc(sizeof(int*) * m);
    for(int i = 0; i < m; i++)
        arr[i] = (int *)malloc(sizeof(int) * n);

    func(arr, m, n);

    for(int i = 0; i < m; m++)
        free(arr[i]);
    free(a);

    return 0;
}

猜你喜欢

转载自blog.csdn.net/Hola_ya/article/details/81319014