Я знаю, что в 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 вместо flip, поскольку в c ++ нет ByteBuffer.
Некоторые близкие альтернативы std::vector
а также std::array
,
Если вы хотите использовать массив байтов, обычно uint8_t
вам нужно будет передать массив в функции, а также емкость и количество элементов в массиве.
Проблема в том, что когда массивы передаются в функции, массив падает до указателя на первый элемент без какой-либо информации о емкости.
Нет никаких средств, чтобы помешать вам индексировать за пределы (емкость) массива. Вот почему std::vector
это более безопасный выбор.
Других решений пока нет …