我想在双指针下更改结构的成员。你知不知道怎么?
示例代码
typedef struct {
int member;
} Ttype;
void changeMember(Ttype **foo) {
//I don`t know how to do it
//maybe
*foo->member = 1;
}
我想在双指针下更改结构的成员。你知不知道怎么?
示例代码
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)->member = 1;
您可以使用临时变量来提高可读性。例如:
Ttype *temp = *foo;
temp->member = 1;
如果您对此有控制权并允许使用 C++,则更好的方法是使用引用。例如:
void changeMember(Ttype *&foo) {
foo->member = 1;
}
也许 (*foo)->member = 1 (如果它是动态分配的)