用陣列時,必須要知道二維陣列的後一個維度,否則無法正確修改,比如:
voidmodify(inta[][10])
{
a[1][2]=12;
a[2][5]=25;
}
voidmain()
inta[5][10];
a[1][2]=0;
a[2][5]=0;
modify(a);
printf("a(1,2)=%d,a(2,5)=%d\n",12,25);
用指標方式實現時要注意二維陣列的建立過程。比如以上的inta[5][10],用指標實現相同功能的程式碼如下:
voidmodify(int**a)
int**a;
a=(int**)malloc(sizeof(int*)*5);
for(inti=0;i<5;i++)
a[i]=(int*)malloc(sizeof(int)*10);
用陣列時,必須要知道二維陣列的後一個維度,否則無法正確修改,比如:
voidmodify(inta[][10])
{
a[1][2]=12;
a[2][5]=25;
}
voidmain()
{
inta[5][10];
a[1][2]=0;
a[2][5]=0;
modify(a);
printf("a(1,2)=%d,a(2,5)=%d\n",12,25);
}
用指標方式實現時要注意二維陣列的建立過程。比如以上的inta[5][10],用指標實現相同功能的程式碼如下:
voidmodify(int**a)
{
a[1][2]=12;
a[2][5]=25;
}
voidmain()
{
int**a;
a=(int**)malloc(sizeof(int*)*5);
for(inti=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);
}