0
私はバッファからstd :: stringを構築しようとしていますが、私は奇妙な問題があります。 は、コードのこの2点の作品が異なっているようだ: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」とは何ですか? 「オフ」とは何ですか? 'len'とは何ですか?その価値と内容は何ですか?文字列に "余分な"文字があることをどうやって知っていますか? [最小限の、完全で検証可能な例](http://stackoverflow.com/help/mcve)を作成してください。 –
@dude:私は単純な例を用意しようとしています –
@nos:はい、ヌルで終わらないことを確認してください。しかし、私が知っていることは、std :: stringの中にバッファをコピーするときには問題ではないということです。 –