我的代码如下执行名为.str()c_str()操作转储
std::ostringstream tmpstr, tmpstr2;
for(/* something */)
{
//writting inside tmpstr
}
tmpstr2 << tmpstr.rdbuf();
cout << "assigned to tmpstr2";
out <<tmpstr2.str().c_str() ; // Where out is ostrstream& out
这是转储最后一叠电话: -
std::basic_ostringstream<char,std::char_traits<char>,std::allocator<char> >::~basic_ostringstream
这最后一行时执行给我一个核心转储。我无法理解它背后的原因。如果我正在执行的操作是invalid
,但是不是汇编错误,有人可以告诉我吗?
可能问题出在您未显示的代码中。 –
'.c_str()'在任何情况下都不是必需的。 – Jon
它不应该很难创建一个最小的可编译的测试用例,为其他人体验相同的行为... – PlasmaHH