用陣列時,必須要知道二維陣列的後一個維度,否則無法正確修改,比如:
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)
int **a;
a = (int **) malloc( sizeof(int *) *5);
for(int i=0 ; i
a[i]=(int *) malloc(sizeof(int)*10);
用陣列時,必須要知道二維陣列的後一個維度,否則無法正確修改,比如:
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
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);
}