0
Я пытаюсь построить std :: string из буфера, но у меня есть странная проблема. Кажется, что это два кусок кода различны:GCC 4.9 std :: string from const char *
std::string myfun()
{
....
std::string rv{};
if (....)
{
char ibuff[256];
memcpy(ibuff, m_buffer + off - 28, len);
ibuff[len] = 0;
rv.assign(ibuff);
}
...
return rv;
}
и
std::string myfun()
{
....
std::string rv{};
if (....)
{
rv.assign(m_buffer + off - 28, len);
}
...
return rv;
}
Я могу увидеть дополнительный (нецензурный) характер во втором случае.
Что такое 'm_buffer'? Что такое 'off'? Что такое 'len'? Каковы их ценности и содержание? Откуда вы знаете, что в строке есть «лишний» символ? Пожалуйста, создайте [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и покажите нам. –
@ dude: Я пытаюсь подготовить простой пример –
@nos: да, конечно, в нулевом завершении. Но из того, что я знаю, это не проблема при копировании буфера внутри std :: string –