我想下双指针来改变结构的构件。你知道怎么样?

实施例的代码

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) - >构件= 1(如果它动态分配)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top