我希望能够修改双指针下的结构体成员。你知道该怎么做吗?
示例代码:
typedef struct {
int member;
} Ttype;
void changeMember(Ttype **foo) {
//I don`t know how to do it
//maybe
*foo->member = 1;
}
我希望能够修改双指针下的结构体成员。你知道该怎么做吗?
示例代码:
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)->member = 1 可能成立。
changeMember()
的代码中,并且将可执行文件与包含该函数的库链接即可。这完全是例行公事。如果你的意思是其他的东西,你应该自己提出一个新问题,以便你可以适当地解释清楚。 - Jonathan Leffler