我想調用一個函數,返回二維數組,但是一直不對,寫了一個簡單的程序,還請各位大神給看一下,
#include
#include
float*q[3];int i,j;
int main()
{
float f[3][2],A[3][2];
float*(TIME(float E[3][2]));
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
{f[i][j]=j+i;printf("%f\n",f[i][j]);}
}
q=TIME(&f[0]);
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
{
A[i][j]=(*(q+i)+j);
printf("%f\n",A[i][j]);
}
}
}
float*(TIME(float E[3][2]))
{
float F[3][2];
for(i=0;i<=2;i++)
{
for(j=0;j<=1;j++)
{F[i][j]=2*E[i][j];}
}
for(i=0;i<=2;i++)
{q[i]=F[i];}
return *q;
}
#include <stdio.h>
int i, j;
float F[3][2];
int main()
{
float(*TIME(float E[3][2]))[2];
float f[3][2], A[3][2];
float(*q)[2];
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 1; j++)
{
f[i][j] = j + i; printf("%f\n", f[i][j]);
}
}
q = TIME(f);
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 1; j++)
{
A[i][j] = *(*(q + i) + j);
printf("%f\n", A[i][j]);
}
}
getchar();
}
float(*TIME(float E[3][2]))[2]
{
for (i = 0; i <= 2; i++)
{
for (j = 0; j <= 1; j++)
{
F[i][j] = 2 * E[i][j];
}
}
return F;
}
結果
0.000000
1.000000
1.000000
2.000000
2.000000
3.000000
0.000000
2.000000
2.000000
4.000000
4.000000
6.000000