【发布时间】:2017-11-16 10:02:56
【问题描述】:
有一段时间没有使用 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 个传感器类型结构的数组
- 将第一个结构的地址传递给函数 Read_ROM
- 将结构体 Sensor[0] 的成员 romFamily 设置为 ROM[0]
read_byte 已经过测试并且可以正常工作。它确实返回 1 个字符。
当我尝试编译时出现此错误:
#138 expression must be a modifiable lvalue
138 是行号:
sens->romFamily = ROM[0];
这里有什么问题?
【问题讨论】:
标签: c arrays struct pass-by-reference