C从结构中访问struct指针变量元素

时间:2016-11-08 02:13:51

标签: c pointers struct

我有以下结构,我希望能够访问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时 不使用*,我收到错误:请求成员'元素'在某种结构或联合的东西中。

如何访问*元素?

1 个答案:

答案 0 :(得分:1)

由于stuArr是指向指针的指针,因此需要使用*取消引用它以获取指针。由于elements是一个数组,因此您需要将其编入索引以获得StudentType *,然后您可以使用该数据转到studentId

(*stuArr)->elements[i]->studentId.