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;
}
运行结果如下:
请前辈帮忙解答一下这是为什么









