有一段时间没有使用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]);
}
我期望它做的是:
read_byte经过测试并正常运行。它确实返回1个字符。
当我尝试编译时,我收到此错误:
#138 expression must be a modifiable lvalue
138是行号:
sens->romFamily = ROM[0];
这里有什么问题?
答案 0 :(得分:3)
尽管可以设置单个元素,但是在C中不能分配数组。
在您的情况下,您需要sens->romFamily[0] = ROM[0];
但是首先要问一下为什么你需要一个元素数组。