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



我有以下结构,我希望能够访问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没有使用*,我得到错误:请求成员'元素'在某些不是结构或联合。

如何访问*元素?

由于stuArr是指向指针的指针,因此需要将其与*解引用以获得指针。由于elements是一个数组,您需要索引它以获得StudentType *,然后您可以使用它来获得studentId

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

最新更新