簡體   English   中英

指向由數組初始化的矩陣的指針的數組

[英]Arrays of pointer to matrices initialized with arrays

我想使用指向矩陣的指針數組在不同矩陣之間循環,我想使用數組變量初始化這些矩陣的行。 由於不同的原因,我無法創建一個新類。

更具體地說,我想要這樣的東西:

第一點

#define SIZE size-value
int row1MatrixM [SIZE]= {1,2,3,4,5,1,2,3,4,5};
int row2MatrixM [SIZE] = {2,4,5,7,8,9,10,11,12};
...

然后:

matrixM= {row1MatrixM, row2MatrixM, row3MatrixM .... };

但是編譯器說我不能用這種方式初始化矩陣。

我現在有:

matrixM, matrixY, matrixX, matrixZ, etc.

然后,我想使用指針訪問它們,所以我需要一個指針數組(一個指向M的指針,一個指向Y的指針,等等)。

所以我試圖寫這樣的東西:

#define NUMBER_OF_MATRICES number-of-matrices-value
int[SIZE][SIZE]* arrayOfPointersToMatrices[NUMBER_OF_MATRICES] = {&matrixM,&matrixY,&matrixX, &matrixZ};

我嘗試了[]和**的不同組合,但似乎沒人能用。 我正在尋找一種允許使用括號訪問指針數組(3D數組)的類型:

arrayOfPointersToMatrices[x][y][z]

要使代碼正常工作:

像這樣聲明數組:

int row1 [NUM_COLS]= {1,2,3,4,5,1,2,3,4,5};
int row2 [NUM_COLS] = {2,4,5,7,8,9,10,11,12};

聲明2d矩陣,例如:

int *matrix2d1[NUM_ROWS] = {row1, row2};
int *matrix2d2[NUM_ROWS] = {row3, row4};

聲明3d矩陣,例如:

int **matrix3d[NUM_MATRICES] = {matrix2d1, matrix2d2};

另一種選擇(“正確”的方式)

強烈建議使用向量。 它們被烘焙到C ++語言中,並且比所有這些數組/指針工作都容易得多。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM