我知道在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。
答案 0 :(得分:0)
一些紧密的替代方案是std::vector
和std::array
。
如果你想使用一个字节数组,通常是uint8_t
,你需要将数组传递给函数以及数组中容量和元素数 。
问题在于,当数组传递给函数时,数组会向下衰减到指向第一个元素的指针,而没有任何容量信息。
没有任何工具可以阻止您索引超出数组的限制(容量)。这就是为什么std::vector
是一个更安全的选择。