我的代碼如下:如何在C++的另一個矩陣的行內存儲矩陣?
#define ROWS 3
#define COLUMNS 3
int main()
{
int fields[COLUMNS][ROWS];
int **sudoku[COLUMNS][ROWS];
sudoku[0][0] = fields;
return 0;
}
我想存儲領域內數獨,什麼爲正確的語法? 如何在另一個矩陣的行內存儲矩陣?
我的代碼如下:如何在C++的另一個矩陣的行內存儲矩陣?
#define ROWS 3
#define COLUMNS 3
int main()
{
int fields[COLUMNS][ROWS];
int **sudoku[COLUMNS][ROWS];
sudoku[0][0] = fields;
return 0;
}
我想存儲領域內數獨,什麼爲正確的語法? 如何在另一個矩陣的行內存儲矩陣?
int fields[COLUMNS][ROWS];
int **sudoku[COLUMNS][ROWS];
sudoku[0][0] = (int**)fields;
或者可以使用std ::陣列
using Fields = array<array<int, ROWS>, COLUMNS>;
Fields fields;
array<array<Fields, ROWS>, COLUMNS> sudoku;
sudoku[0][0] = fields; // this will copy the data
加1爲'std :: array'解決方案。 –
謝謝!你會推薦使用static_cast
帶有轉換的版本允許賦值,但仍然無法使用該指針訪問數組元素,因爲它希望'sudoku [0] [0]'是指向指針的指針,而不是指針到一個數組。 – Barmar
'INT **'是一個指針數組,而不是2-d陣列。 – Barmar
使用'std :: vector'和智能指針,而不是數組和指針。 – Barmar
實際上,'sudoku'是指向int指針的指針數組的數組。它認爲這實際上比'int ****'更復雜(指向指向int指針的指針的指針)。你的代碼中需要很多類型定義 - 最好是一些結構。 –