如何使用指针工作的指针在C结构呢?
-
19-08-2019 - |
题
我想下双指针来改变结构的构件。你知道怎么样?
实施例的代码
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(如果它动态分配)
不隶属于 StackOverflow