访问结构中包含指向矩阵数组的指针的元素
Accessing an element in struct holding a pointer to a matrix array
我正在尝试使用 temp_param->mat_ptr[0][0]
访问一个元素,但它产生了一个错误 Format specifies type 'int' but the argument has type 'int *'
。有什么问题?
#include <stdio.h>
typedef int matrix[4][4];
matrix mat;
typedef struct tnode {
matrix *mat_ptr;
} params;
params temp_param;
int main() {
temp_param.mat_ptr = &mat;
/* temp_param->mat_ptr[0][0] produces an error "Format specifies type 'int' but the argument has type 'int *'" */
printf("%d", temp_param->mat_ptr[0][0]);
return 0;
}
表达式params.mat_ptr
的类型是一个指向二维数组的指针。因此必须在像二维数组一样访问之前取消引用。
此外 temp_param
是一个结构,而不是指向结构的指针。因此,它的成员是通过 .
运算符而不是 ->
.
访问的
尝试(*temp_param.mat_ptr)[0][0]
我正在尝试使用 temp_param->mat_ptr[0][0]
访问一个元素,但它产生了一个错误 Format specifies type 'int' but the argument has type 'int *'
。有什么问题?
#include <stdio.h>
typedef int matrix[4][4];
matrix mat;
typedef struct tnode {
matrix *mat_ptr;
} params;
params temp_param;
int main() {
temp_param.mat_ptr = &mat;
/* temp_param->mat_ptr[0][0] produces an error "Format specifies type 'int' but the argument has type 'int *'" */
printf("%d", temp_param->mat_ptr[0][0]);
return 0;
}
表达式params.mat_ptr
的类型是一个指向二维数组的指针。因此必须在像二维数组一样访问之前取消引用。
此外 temp_param
是一个结构,而不是指向结构的指针。因此,它的成员是通过 .
运算符而不是 ->
.
尝试(*temp_param.mat_ptr)[0][0]