c语言 二维指针无法通过函数传值,怎么解决、、、

2024-12-16 12:18:49
推荐回答(2个)
回答1:

用三维指针。

#include 
#include 

void creat2Arr(int ***dest1, int x, int y)
{
    int **dest;
dest = (int **)malloc(sizeof(int)*x);
int i=0;
for ( ; i < x;i++)
{
dest[i] = (int *)malloc(sizeof(int)*y);
int j=0;
for (; j < y;j++)
{

dest[i][j] =i+j;
}
}
printf("%d",dest[0][0]);

    *dest1 = dest;
}

void free2Arr(int **dest, int x)
{
int i;
for (i=0; i < x;i++)
{
free(dest[i]);
dest[i] = NULL;
}
free(dest);
dest = NULL;
}

int main(void)
{
    int **a=NULL;
    creat2Arr(&a,10,10);
    printf("%d",a[0][0]);

    free2Arr(a,10);

return 0;
}

回答2:

把错误提示贴上来啊