std::vector<u8[DATA_LEN]> vecRecvBuff; vecRecvBuff.resize(521);有什么错误
时间: 2024-03-17 10:43:57 浏览: 114
我的第五个vb程序 帮我看一下错误在哪
`std::vector<u8[DATA_LEN]>` 定义了一个存储 `u8` 类型数组的 `vector`,其中每个数组的长度为 `DATA_LEN`。这样定义是有问题的,因为 C++ 中不支持数组类型作为容器的元素类型。
如果你要存储一组固定长度的字节数组,可以使用 `std::vector<std::array<u8, DATA_LEN>>`,其中 `std::array` 是一个固定长度的数组容器,它可以作为 `vector` 的元素类型。例如:
```c++
#include <vector>
#include <array>
typedef uint8_t u8;
const int DATA_LEN = 10;
int main() {
std::vector<std::array<u8, DATA_LEN>> vecRecvBuff;
vecRecvBuff.resize(521);
// 使用下标访问元素
vecRecvBuff[0][0] = 0x12;
vecRecvBuff[0][1] = 0x34;
// ...
return 0;
}
```
这样定义的 `vector` 可以存储多个长度为 `DATA_LEN` 的字节数组。注意,使用 `resize` 函数时,它会默认初始化每个元素,所以每个字节数组的元素都会被初始化为 `0`。
希望这可以解决你的问题。
阅读全文