【发布时间】:2019-05-18 05:36:16
【问题描述】:
我想创建一个矩阵指针数组。
int matrix1[4][1] = {
{1} ,
{2} ,
{3} ,
{4}
};
int matrix2[2][2] = {
{1, 2} ,
{3, 4}
};
我试图弄清楚如何创建一个指针数组来调用这些矩阵。
matrix[0][0][0] 应该返回 1,matrix[1][1][1] 应该返回 4。
到目前为止,我已经尝试过这种方法,但我遇到了分段错误错误。
int *** matrix = (int ***)malloc(2 * sizeof(int **));
matrix[0] = &matrix1;
matrix[1] = &matrix2;
【问题讨论】:
-
两个矩阵的大小必须相同
-
你怎么能分配这些矩阵?您是否启用了警告?使用
typedef struct { int * data; int num_rows; int num_cols; } Matrix;之类的东西,并定义创建矩阵并对其元素进行操作的函数。要理解为什么这行不通,想想当你写matrix[0][2][1]时编译器必须做什么。