如何限制缓冲区大小并在c ++中返回缓冲区限制?

时间:2015-10-20 22:49:06

标签: java c++ buffer limit bytebuffer

我知道在Java中你使用Bytebuffer .limit()但我不确定如何在c ++中这样做。谢谢! ☺

以下是代码的一部分:

float _proj[16];
float _projb[1];

//this->_proj.flip().limit(16);
swap(_proj, _projb);
this->_proj.get(this->proj);

我使用std :: swap方法而不是翻转,因为c ++中没有ByteBuffer。

1 个答案:

答案 0 :(得分:0)

一些紧密的替代方案是std::vectorstd::array

如果你想使用一个字节数组,通常是uint8_t,你需要将数组传递给函数以及数组中容量和元素数

问题在于,当数组传递给函数时,数组会向下衰减到指向第一个元素的指针,而没有任何容量信息。

没有任何工具可以阻止您索引超出数组的限制(容量)。这就是为什么std::vector是一个更安全的选择。