有关二维动态数组作为函数参数的有关问题,不知道哪错了,请高手帮忙解决

有关二维动态数组作为函数参数的问题,不知道哪错了,请高手帮忙解决
利用动态数组实现矩阵转置
#include   <iostream.h>
void   move(int   **   p,int   m,int   n)
{

int   i,j,k;
for(i=0;   i <m;   i++)
for   (j=0;   j <n;   j++)
{
k   =   p[i][j];
p[i][j]=   p[j][i];
p[j][i]   =   k;
}
cout   < <   "转置后的矩阵的为: "   < <   endl;
for(i=0;   i <3;   i++)
{
for   (j=0;   j <3;   j++)
cout   < <   p[i][j]   < <   "   ";
cout   < <   endl;
}
}
void   main()
{
int   i,j;
int   **p=new   int   *[3];

for   (i=0;   i <3;   i++)
p[i]=new   int[3];
for(i=0;   i <3;   i++)
for   (j=0;   j <3;   j++)
{
cout   < <   "第 "   < <   i+1   < <   "行第 "   < <   j+1   < < "个元素为: ";
cin   > >   p[i][j];
}
for(i=0;   i <3;   i++)
{
for   (j=0;   j <3;   j++)
cout   < <   p[i][j]   < <   "   ";
cout   < <   endl;
}
move(p,3,3);

}


------解决方案--------------------
你这里要转换2此。。所以没变。。
for(i=0; i <m; i++)
for (j=0; j <n; j++)
{
k = p[i][j];
p[i][j]= p[j][i];
p[j][i] = k;
}