uint8 缓冲区的 C++ 数组

c++ array of uint8 buffers

在 C++ 中,我有一个长度为 [len] 的 uint8 缓冲区。分配单个缓冲区时,我这样做:

uint8 *buffer= new uint8[len];

分配此类缓冲区数组的语法是什么?这给了我一个语法错误:

uint8** buffers = new uint8[len]*[bufferCount];
#include <vector>

using byte_vector = std::vector<uint8_t>;
using byte_vector_vector = std::vector<byte_vector>;


// example of a 1-dimension vector
auto v1 = byte_vector(len, inital_value);

// example of a [2, len] vector
auto v_of_v = byte_vector_vector { 
  byte_vector(len, initial_value),
  byte_vector(len, initial_value)
};

// print the uint8 at (0,1)
std::cout << v_ov_v[0][1] << std::endl;

你问了

What's the syntax for allocating an array of such buffers?

您可以使用:

uint8** buffers = new uint8*[bufferCount];

但是,仅当 std::vector 由于某种原因绝对不是一个选项时才使用此选项。

初始化二维数组的方式如下:

uint8** buffers = new uint8*[bufferCount];
for (int i = 0; i < bufferCount; i++)
    buffers[i] = new uint8[len];