我有以下结构,我希望能够访问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.