任何機構都知道如何將2d動態數組轉換爲靜態,以便我可以在lapacke中使用它。 dgels函數只能在c中使用靜態矩陣? 當我使用malloc它不會給出正確的答案。我怎樣才能使用malloc,使其與it.thankyou工作動態二維數組到靜態數組
#include <stdio.h>
#include <lapacke.h>
#include <conio.h>
int main (int argc, const char * argv[])
{
/*double a[5][3] = {1,1,1,2,3,4,3,5,2,4,2,5,5,4,3};*/
double b[5][2] = {-10,-3,12,14,14,12,16,16,18,16};
lapack_int info,m,n,lda,ldb,nrhs;
int i,j;
double **a;
a=(double**)malloc(5* sizeof(double*));
for (i=0;i<5;i++)
{
a[i]=(double*)malloc(3* sizeof(double));
}
a[0][0]=1;
a[0][1]=1;
a[0][2]=1;
a[1][0]=2;
a[1][1]=3;
a[1][2]=4;
a[2][0]=3;
a[2][1]=5;
a[2][2]=2;
a[3][0]=4;
a[3][1]=2;
a[3][2]=5;
a[4][0]=5;
a[4][1]=4;
a[4][2]=3;
m = 5;
n = 3;
nrhs = 2;
lda = 3;
ldb = 2;
info = LAPACKE_dgels(LAPACK_ROW_MAJOR,'N',m,n,nrhs,*a,lda,*b,ldb);
for(i=0;i<n;i++)
{
for(j=0;j<nrhs;j++)
{
printf("%lf ",b[i][j]);
}
printf("\n");
}
getch();
return(info);
}
我怎麼可以將它們壓平成1d數組使用行或列主要用於?我不知道這個功能? 你可以通過從上面的malloc來給出例子。因爲我從一開始就在2d數組malloc中工作,而且我必須創建1d malloc。我沒有任何想法:thanx – user3546028