Как бы вы ограничить размер буфера, а также вернуть ограничение буфера в C ++?

Я знаю, что в 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.

0

Решение

Некоторые близкие альтернативы std::vector а также std::array,

Если вы хотите использовать массив байтов, обычно uint8_tвам нужно будет передать массив в функции, а также емкость и количество элементов в массиве.

Проблема в том, что когда массивы передаются в функции, массив падает до указателя на первый элемент без какой-либо информации о емкости.

Нет никаких средств, чтобы помешать вам индексировать за пределы (емкость) массива. Вот почему std::vector это более безопасный выбор.

0

Другие решения

Других решений пока нет …