我不熟悉C语言。我正在研究。

我有一个像这样的功能。
我一直在尝试将整数数据分配给uint8_t * data,但事实并非如此。
我有一个错误0x00与uint8_t * data不匹配。
如何将我的整数(0x00)数据分配到那里?

sccb_write_reg(0x01, 0x00); //<---it makes error


void sccb_write_reg(uint16_t reg, uint8_t *data)
{
...
...
}


您能告诉我如何解决这个问题吗?

最佳答案

对于这种特殊情况,上下文线索告诉我们调用函数中应该有data,并且您应该在以下位置传递其地址:

uint8_t data = 0x00;
uin16_t reg = 0x01;
sccb_write_reg(reg, &data);


注意&之前的&字符(data)。就是说,“传递data的地址”是uint8_t *,它是一个内存地址。

关于c - 如何为指针数据分配整数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39678988/

10-11 23:15
查看更多