我想用SuperLU進行矩陣反轉,但我無法訪問最終結果。它使用一些結構進行反演,我知道答案是在一個結構中,但我不能引用它。如何訪問另一個結構中的結構內的一個元素作爲指針?
B是定義爲具有格式的超矩陣:基於S類型的存儲器的變化的結構
typedef struct {
Stype_t Stype; /* Storage type: indicates the storage format of *Store. */
Dtype_t Dtype; /* Data type. */
Mtype_t Mtype; /* Mathematical type */
int nrow; /* number of rows */
int ncol; /* number of columns */
void *Store; /* pointer to the actual storage of the matrix */
} SuperMatrix;
。對B用於*商店的結構是:
typedef struct {
int lda; /* leading dimension */
void *nzval; /* array of size lda-by-ncol to represent
a dense matrix */
} DNformat;
結果B的最終結構應該是:
B = { Stype = SLU_NC; Dtype = SLU_D; Mtype = SLU_GE; nrow = 5; ncol = 5;
*Store = { lda = 12;
nzval = [ 19.00, 12.00, 12.00, 21.00, 12.00, 12.00, 21.00,
16.00, 21.00, 5.00, 21.00, 18.00 ];
}
}
現在我想的價值觀出從nzval複製,但我不知道如何。
我試圖做B.Store.nzval但誤差「的東西請求成員`nzval」不是一個結構或聯合」
而且
DNformat **g = B.Store;
int *r = *(g->nzval);
和一些其他的東西像但不知道如何解決這個問題。
非常感謝!
要回答您的其他問題;奧利擁有正確的信息。 – Suroot