如何使用指针指向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(如果它是动态分配的)