Меня интересует следующая проблема: предположим, у меня есть функция в стиле C, которая считывает необработанные данные в буфер
int recv_n(int handle, void* buf, size_t len);
Можно ли считывать данные непосредственно в std:string
или * 1005?* без выделения каких-либо временных буферов?Например,
std::string s(100, '\0');
recv_n(handle, s.data(), 100);
Я полагаю, что это решение имеет неопределенный результат, потому что, afaik, string::c_str
и string::data
могут возвращать временное местоположение и необязательно возвращать указатель на реальное место в памяти, используемый объектом для хранения данных.
Есть идеи?