fill_n(&AcCtrl, sizeof(AcCtrl), 0); // memset(&AcCtrl, 0, sizeof(AcCtrl));error: no match for ‘operator=’ (operand types are ‘bts_can::MultiParametersState’ and ‘const int’) 772 | *__first = __tmp; | ~~~^
时间: 2024-03-05 10:48:54 浏览: 97
这个错误提示表明,在第772行代码中,你试图将一个整数值分配给bts_can::MultiParametersState对象,但是这个对象没有一个接受整数值的赋值运算符。
在这段代码中,你使用了 fill_n 函数,这个函数的参数类型应该是指针类型,而不是对象类型。因此,你需要将参数 AcCtrl 取地址,即使用 &AcCtrl,来获取指向该对象的指针。这样,fill_n 函数就可以正确地将指针所指向的内存空间填充为0了。
代码应该改为:
```
fill_n(&AcCtrl, sizeof(AcCtrl), 0);
```
或者使用 memset 函数:
```
memset(&AcCtrl, 0, sizeof(AcCtrl));
```
这两种方式都可以正确地将 AcCtrl 对象所占用的内存空间填充为0。
阅读全文