我的代碼如下執行名爲.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