16

ダブルポインタの下の構造体のメンバーを変更したい。どのようにするか知っていますか?

サンプルコード

typedef struct {
    int member;
} Ttype;

void changeMember(Ttype **foo) {
   //I don`t know how to do it
   //maybe
   *foo->member = 1;
}
4

4 に答える 4

31

試す

(*foo)->member = 1;

最初に*を明示的に使用する必要があります。それ以外の場合は、メンバーを間接参照しようとします。

于 2008-12-06T20:33:53.523 に答える
10

演算子の優先順位により、これを括弧で囲む必要があります。

(*foo)->member = 1;
于 2008-12-06T20:34:09.607 に答える
3

一時変数を使用して、読みやすさを向上させることができます。例えば:

Ttype *temp = *foo;
temp->member = 1;

これを制御でき、C ++の使用が許可されている場合は、参照を使用するのがより良い方法です。例えば:

void changeMember(Ttype *&foo) {
   foo->member = 1;
}
于 2008-12-06T20:59:41.160 に答える
1

多分(* foo)-> member = 1(動的に割り当てられている場合)

于 2008-12-06T20:33:44.067 に答える