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];
在 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];