繁体   English   中英

将char数组的指针传递给函数

[英]Passing pointer of char array to function

下面是我的函数,该函数采用大小为2的char数组,将其传递给函数,并且该函数应返回相同的2个chars(在与硬件设备通信时,这有点复杂的过程)。 问题是当我将char(* in)[2]传递给函数时; 当我打印元素时,它仅在[0]中显示数据,而不在[1]中显示数据。 不知道为什么。 任何帮助表示赞赏。

int function(struct device *d, char (*in)[2], char (*out)[2])
{

    printf("in: %c %c\n", *in[0], *in[1]); // TEST
    uint16_t data = (*in[0] << 8) + *in[1];

    send_request(d, IN, ECHO, data, 0, *out, 2);

    printf("%s\n", *out);

    return 0;
}

谢谢鲍勃

我假设您正在将数组的地址传递给您function()

问题是[]运算符的优先级高于*运算符。

正确的代码将是。

printf("in: %c %c\n", (*in)[0], (*in)[1]);

首先,你提领in获得原有的数组,然后你会得到数组的元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM