表达式必须是可修改的左值(尝试附加到数组时)
Expression must be a modifiable lvalue (when attempting to append to an array)
我有以下内容:
uint16_t Hitcount[64]; //64-byte array buffer
uint16_t Br;
int StdWidth = 38;
int widthpad = 8;
int W;
uint16_t blocks;
if (W <= (StdWidth + widthpad) && W >= (StdWidth - widthpad) && blocks == 1) {
Hitcount += Br;
}
我的目标是如果 "W" 在某个范围内,则将 "Br" 附加到数组 "Hitcount"。但是,"Hitcount" 指示错误 "Expression must be a modifiable lvalue"。难道我的数据类型和一切都井井有条吗?
如果这与已发布的其他问题太接近,我们深表歉意。我看着它们,但以我有限的知识无法将它们与这种情况联系起来。
Hitcount += Br;
您不能像这样向 C 样式数组添加值。您要么需要维护元素计数并添加这样的值:
Hitcount[count++] = Br;
或者您最好使用 std::vector
并通过调用 push_back
:
添加元素
std::vector<uint16_t> Hitcount;
// code skipped
Hitcount.push_back( Br );
普通 C/C++ 数组不能像 string
对象那样扩展。考虑使用 std::vector
.
我有以下内容:
uint16_t Hitcount[64]; //64-byte array buffer
uint16_t Br;
int StdWidth = 38;
int widthpad = 8;
int W;
uint16_t blocks;
if (W <= (StdWidth + widthpad) && W >= (StdWidth - widthpad) && blocks == 1) {
Hitcount += Br;
}
我的目标是如果 "W" 在某个范围内,则将 "Br" 附加到数组 "Hitcount"。但是,"Hitcount" 指示错误 "Expression must be a modifiable lvalue"。难道我的数据类型和一切都井井有条吗?
如果这与已发布的其他问题太接近,我们深表歉意。我看着它们,但以我有限的知识无法将它们与这种情况联系起来。
Hitcount += Br;
您不能像这样向 C 样式数组添加值。您要么需要维护元素计数并添加这样的值:
Hitcount[count++] = Br;
或者您最好使用 std::vector
并通过调用 push_back
:
std::vector<uint16_t> Hitcount;
// code skipped
Hitcount.push_back( Br );
普通 C/C++ 数组不能像 string
对象那样扩展。考虑使用 std::vector
.