0

次のコードスニペットがあります。基本的に、値セットメソッドを使用してextract関数から値を取得しようとしています。以下は以下のスニペットです

int extract(uint8_t *msg) 
{
    msg = get_value();
    print(msg); // I am able to print the value here.
}


int main()
{
     uint8_t msg;
     extract(&msg);
     print(msg)   // Here it is printing incorrect value..
}

私は何が間違っているのですか?

4

3 に答える 3

1

msgをポインタとして渡しています。

int extract(uint8_t *msg) 
{
    msg = get_value();
    print(msg); // I am able to print the value here.
}

する必要があります

int extract(uint8_t *msg) 
{
    *msg = get_value();
    print(*msg);
}
于 2013-02-13T11:09:17.200 に答える
1

与えられたすべての答えを組み合わせると、何かが機能する可能性があります。

コードには多くのエラーがあり、何が返されget_value()、何がに必要なパラメータであるかが不明ですprint()。私の推測では、print()関数はポインターを取ります-それがで機能する理由print()ですextract()-そして、それがmainで機能するためには、参照によってmsgポインターも渡す必要があります。したがって、次のようなものが必要になる場合があります(Cコード):

int extract(uint8_t **msg) 
{
    (*msg) = get_value();
    print(*msg);
}


int main()
{
     uint8_t *msg;
     extract(&msg);
     print(msg)
}
于 2013-02-13T11:41:36.630 に答える
0

msg = get_value()は、ポインタに値を割り当てます。* msg = get_value()を使用して、mainで定義された変数msgに値を割り当てる必要があります。

于 2013-02-13T11:10:51.177 に答える