如何使用指针指向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)->member = 1; 

您可以使用temp变量来提高可读性。 例如:

 Ttype *temp = *foo; temp->member = 1; 

如果您可以控制并允许使用C ++,则更好的方法是使用引用。 例如:

 void changeMember(Ttype *&foo) { foo->member = 1; } 

也许(* foo) – > member = 1(如果它是动态分配的)