【发布时间】:2020-12-25 10:18:55
【问题描述】:
我有以下问题。函数printMatrix
例如接收一个矩阵:
matrix:
[[0,1,1,2],
[0,5,0,0],
[2,0,3,3]]
我必须使用的代码如下:
// Definition for arrays:
// typedef struct arr_##name {
// int size;
// type *arr;
// } arr_##name;
//
// arr_##name alloc_arr_##name(int len) {
// arr_##name a = {len, len > 0 ? malloc(sizeof(type) * len) : NULL};
// return a;
// }
//
//
void printMatrix(arr_arr_integer matrix)
{
}
他们给我的一个线索是,列数和行数可以通过以下方式确定。
int columns = matrix.arr->size; //No.columns
int rows = matrix.size; //No.rows
//Or
int columns = matrix.arr[0].size; //No.columns
int rows = matrix.size; //No.rows
我的问题在于其余的代码是如何编写的,以便之前的曲目可以工作?
也就是说,要让它在函数printMatrix中工作
您应该在代码中添加或修改哪些内容才能使上述方法起作用?
typedef struct arr_arr_integer {
int size;
type *arr;
} arr_arr_integer;
arr_arr_integer alloc_arr_arr_integer(int len) {
arr_arr_integer a = {len, len > 0 ? malloc(sizeof(type) * len) : NULL};
return a;
}
void printMatrix(arr_arr_integer matrix)
{
int columns = matrix.arr->size; //No.columns
int rows = matrix.size; //No.rows
//print matrix?
}
int main(int argc, char const *argv[])
{
//input matrix?
printMatrix(arr_arr_integer matrix)
return 0;
}
我再说一遍。我必须严格使用这段代码
int columns = matrix.arr->size; //No.columns
int rows = matrix.size; //No.rows
问题是,当我尝试使用这些音轨时,出现以下编译错误。
error: request for member 'size' in something not a structure or union
【问题讨论】:
-
这是您 6 小时前的问题的重复:stackoverflow.com/questions/63767458/…
-
我之前的帖子不是很清楚,所以决定重新发一个。