我想改變雙指針結構的成員。你知不知道怎麼?如何使用C指針指向結構的指針?
示例代碼
typedef struct {
int member;
} Ttype;
void changeMember(Ttype **foo) {
//I don`t know how to do it
//maybe
*foo->member = 1;
}
我想改變雙指針結構的成員。你知不知道怎麼?如何使用C指針指向結構的指針?
示例代碼
typedef struct {
int member;
} Ttype;
void changeMember(Ttype **foo) {
//I don`t know how to do it
//maybe
*foo->member = 1;
}
嘗試
(*foo)->member = 1;
你需要明確使用*第一。否則,這是試圖解除引用成員。
也許(* FOO) - >成員= 1(如果它的動態分配)
沒有也許 - 但動態分配並不重要。 – 2008-12-08 01:35:36
由於運算符優先級,你需要把解決此括號:
(*foo)->member = 1;
您可以使用一個臨時變量來提高可讀性。例如:
Ttype *temp = *foo;
temp->member = 1;
如果您有控制權並允許使用C++,更好的方法是使用引用。例如:
void changeMember(Ttype *&foo) {
foo->member = 1;
}
一個疑問的例子:如果changeMember()函數是在類庫中創建的,我需要在我的控制檯應用程序中訪問它,應該如何完成? :@Jonathan Leffler – TechBrkTru 2015-06-04 07:34:27