uint8缓冲区的c ++数组

时间:2015-01-14 19:21:19

标签: c++ arrays buffer

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

uint8 *buffer= new uint8[len];

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

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

#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;

答案 2 :(得分:1)

你问了

  

分配此类缓冲区数组的语法是什么?

您可以使用:

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

但是,只有在出于某种原因绝对不能选择std::vector时才使用此功能。