0

我有以下代码片段:基本上我正在尝试使用值集方法从提取函数中获取值。以下是下面的片段

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()——你还应该通过引用传递 msg 指针,以便它在 main 中工作。所以你可能需要这样的东西(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 回答