我的代码如下:如何在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指针的指针的指针)。你的代码中需要很多类型定义 - 最好是一些结构。 –