问题描述
我想在双指针下更改结构成员.你知道怎么吗?
示例代码
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; }