ダブルポインタの下の構造体のメンバーを変更したい。どのようにするか知っていますか?
サンプルコード
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(動的に割り当てられている場合)