#include <iostream>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
ostringstream out;
ostringstream tmpstr;
tmpstr << "ritesh is here";
out << tmpstr.str().c_str();
out << endl;
cout << out.str();
if(tmpstr.rdbuf()!=NULL)
cout << "tmpstr not null" <<endl;
else
cout << "tmpstr null" <<endl;
delete tmpstr.rdbuf(); // This line gives me segmentation fault
cout <<"deleted" << endl;
}
delete tmpstr.rdbuf();
行给出了分段错误。我猜rdbuf返回char *指针,因此。我可以在其上使用删除来释放分配给tmpstr
的内存空间我在某处错了吗?
最佳答案
是的,您认为可以delete
未分配的内容是错误的。
您只有delete
个已自己完成的事情。不要new
别人的东西。
关于c++ - 为什么删除我的代码中的ostringstream对象会导致段错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10556808/