我正在嘗試使用訪問元素,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;
}
uj5u.com熱心網友回復:
運算式的型別params.mat_ptr
是指向二維陣列的指標。因此,在像二維陣列一樣訪問之前必須取消參考。而且temp_param
是一個結構,而不是一個指向結構的指標。因此它的成員是通過.
運算子而不是->
.
嘗試(*temp_param.mat_ptr)[0][0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/470634.html
標籤:C