gpt4 book ai didi

C - 通过引用将单个结构从数组传递到函数

转载 作者:行者123 更新时间:2023-11-30 18:35:17 24 4
gpt4 key购买 nike

有一段时间没有使用 C 语言了,我一直坚持通过引用将单个结构从结构数组传递到函数。

我的代码如下所示:

struct Sensor {
//ROM data
char romCRC[1];
char romSerial[6];
char romFamily[1];
};

const int maxSens = 10;

void Read_ROM(struct Sensor *sens){
char ROM[10];
for (k = 0; k<8; k++){
ROM[k] = read_byte();
sens->romFamily = ROM[0];
}
}

int main(){
struct Sensor Sensors[maxSens];
Read_ROM(&Sensors[0]);
}

我期望它做的是:

  • 创建一个包含 10 个 Sensor 类型结构体的数组
  • 将第一个结构体的地址传递给函数 Read_ROM
  • 将 struct Sensor[0] 的成员 romFamily 设置为 ROM[0]

read_byte 已测试且正常工作。它确实返回 1 个字符。

当我尝试编译时出现此错误:

#138 expression must be a modifiable lvalue

其中 138 是行号:

sens->romFamily = ROM[0];

这里出了什么问题?

最佳答案

尽管您可以设置单个元素,但在 C 中数组是不可赋值的。

在您的情况下,您需要 sens->romFamily[0] = ROM[0];

但是请先质疑为什么您需要一个单元素数组。

关于C - 通过引用将单个结构从数组传递到函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47326693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com