C语言中二维数组指针在自定义函数中如何定义形参?

 

void sort(int **p)

{

    int t;

   for(int i=0;i<4;i++)

      for(int j=0;j<4;j++)

      {

t = p[i][j];

p[i][j] = p[j][i];

p[j][i] = t;

}

} 

 

void sort(int* a[])传入的是一个指针数组。

可以使用 void sort(int **a)传二维数组。

对于int a[m][n]={}定义的二维数组,可以等价为m*n的一维数组int a[m*n];

自定义函数中建议不要使用二级指针,容易出错。

如有帮助,请采纳一下,谢谢。

代码如下:


#include <stdio.h>

void sort(int **p)
{
	int t;
	for(int i=0;i<4;i++)
	{
		for(int j=0;j<4;j++)
		{
			t = p[i][j];
			p[i][j] = p[j][i];
			p[j][i] = t;
		}
	}	
}
int main()
{
	int **b = new int*[4];
	for (int i = 0;i <4;i++)
	{
		*b = new int[4];
        for (int j = 0;j < 4;j++)
		{
			(*b)[j] = j; //赋值
		}
	}
	sort(b);
    getchar();
    getchar();
    return 0;
}