c语言做矩阵转置出现问题?
C语言做2*3矩阵转置,写一个矩阵转置函数,传入原数组,和一个用于转置之后的数组,在函数中输出没有问题,但是在主函数中,输出转置后的数组元素,最后一行出现乱码程序代码:
void zhuanzhi(float **a,float **b,int i1,int j1) { int i,j; for(i=0;i<i1;i++) { for(j=0;j<j1;j++) { b[j][i]=a[i][j]; } } for (i=0;i<j1;i++) { for(j=0;j<i1;j++) { printf("%f ",b[i][j]); } printf("\n"); } } int main() { int i,j; float a[2][3]={1,2,3,8,5,2},b[3][2]; float *p[3],*q[2]; p[0]=a[0],p[1]=a[1],p[2]=a[2]; q[0]=b[0],q[1]=b[1]; zhuanzhi(p,q,2,3); for (i=0;i<3;i++) { for(j=0;j<2;j++) { printf("%f ",b[i][j]); } printf("\n"); } return 0; }
运行结果如下:
请前辈帮忙解答一下这是为什么