首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

C语言如何在子函数中对主函数中的二维数组值进行修改? 二维数组已经在主函数中用动态数组分配了空间。

发布网友

我来回答

2个回答

热心网友

用指针做函数参数可以实现!追问这个我也知道,问题是我怎么改都不对,要不我也不会到这来问了。您有没有源码示例一下?谢谢!

热心网友

用数组时,必须要知道二维数组的后一个维度,否则无法正确修改,比如:
void modify(int a[][10])
{
a[1][2] = 12;
a[2][5] = 25;
}
void main()
{
int a[5][10];
a[1][2] = 0;
a[2][5] = 0;
modify(a);
printf("a(1,2)=%d, a(2,5)=%d\n",12, 25);
}

用指针方式实现时要注意二维数组的建立过程。比如以上的int a[5][10],用指针实现相同功能的代码如下:
void modify(int **a)
{
a[1][2] = 12;
a[2][5] = 25;
}

void main()
{
int **a;
a = (int **) malloc( sizeof(int *) *5);
for(int i=0 ; i<5 ; i++)
a[i]=(int *) malloc(sizeof(int)*10);
a[1][2] = 0;
a[2][5] = 0;
modify(a);
printf("a(1,2)=%d, a(2,5)=%d\n",12, 25);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com