2016-11-08 52 views
0

我具有以下結構,我希望能夠訪問StudentType的元素:ç訪問結構指針可變元件

typedef struct { 
    int studentID; 
    char name[MAX_STR]; 
    char degree[MAX_STR]; 
} StudentType; 

typedef struct { 
    StudentType *elements[MAX_ARR]; 
    int size; 
} StudentArrType; 

My功能:

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

由於stuArr是一個指向指針的指針,因此需要使用*將其解引用到指針。由於elements是一個數組,因此您需要對其進行索引以獲得StudentType *,然後可以使用該數字來獲得studentId

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