我有以下结构,我希望能够访问StudentType的元素:
typedef struct {
int studentID;
char name[MAX_STR];
char degree[MAX_STR];
} StudentType;
typedef struct {
StudentType *elements[MAX_ARR];
int size;
} StudentArrType;
我的功能:
void initStuArr(int studentID, char *name, char *degree, StudentType **stu, StudentArrType **stuArr){
我尝试过以下两种情况,不允许我访问*元素:
stuArr->*elements->studentID = studentID
和
stuArr->(*elements)->studentID = studentID
我收到错误:' *'之前的预期标识符令牌和'('当我尝试上述2时的令牌。当我尝试stuArr->elements->studentID = student ID
时
不使用*,我收到错误:请求成员'元素'在某种结构或联合的东西中。
如何访问*元素?
答案 0 :(得分:1)
由于stuArr
是指向指针的指针,因此需要使用*
取消引用它以获取指针。由于elements
是一个数组,因此您需要将其编入索引以获得StudentType *
,然后您可以使用该数据转到studentId
。
(*stuArr)->elements[i]->studentId.