程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 返回二維數組 語言-關於調用函數返回二維數組的問題

返回二維數組 語言-關於調用函數返回二維數組的問題

編輯:編程綜合問答
關於調用函數返回二維數組的問題

我想調用一個函數,返回二維數組,但是一直不對,寫了一個簡單的程序,還請各位大神給看一下,
#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;
}

最佳回答:


  • 沒想到二維數組還真是個問題。以前遇到類似的就直接malloc了
  • 根據你程序的意思改了下,看看是不是你要的
#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
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved