没看清楚是要求指针的···不好意思呀 。。指针的代码是
#include<iostream>
#define n 3
#define m 3
using namespace std;
main()
{
int i,j;int a[n][m];int **p;
int **change(int , int , int(*)[m]);//声明函数
for(i=0;i<n;i++)
for(j=0;j<m;j++)
cin>>a[i][j]; //输入一个二维数组
p=change(n,m,a); //调用函数
for(i=0;i<m;i++)
for(j=0;j<n;j++)
printf((j==n-1)?"%d\n":"%d ",p[i][j]); //输出新的数组
free(p); //释放空间
return 0;
}
int **change(int nn,int mm,int (*a)[m]) //子函数,把数组行与列调换
{
int i,j;
int **q;
q=(int**)malloc(sizeof(int)*mm); //申请二维数组动态储存空间
for(i=0;i<mm;i++)
q[i]=(int*)malloc(sizeof(int)*nn);
for(i=0;i<mm;i++) //数组行与列调换
for(j=0;j<nn;j++)
q[i][j]=a[j][i];
return q; //返回新的数组
}