Как правило, вы хотите использовать один из стандартных контейнеров. Мое личное предложение std::vector
. Вы можете использовать его как массив (так как данные гарантированно будут смежными), и он имеет удобные операции индексации и вставки (кажется, что вы не заинтересованы в удалении в данный момент).
В частности, вы можете настроить что-то вроде
std::vector<char> buff;
// while you are reading data
buff.push_back (item);
Когда вы закончите, вы можете позвонить buff.size
, чтобы узнать, сколько вы прочитали.
В качестве дополнительного бонуса (если вы на самом деле имеете дело с буферами символов), когда вы, наконец, получите все необходимые данные, вы можете преобразовать их в std::string
, чтобы выполнить любой поиск, который вы хотите.
std::vector<char> buff;
buff.push_back('e');
buff.push_back('a');
buff.push_back('t');
std::string s(&buff[0], buff.size());
Отредактировано для корректности.