STL string 析构异常原因分析
2016-11-28 16:27
417 查看
使用C++string类声明str1变量,程序运行一段时间在跑到std::string str1这条语句导致崩溃,想问一下,什么情况下会产生这样的问题?
http://blog.csdn.net/moyumoyu/article/details/6712244
class __declspec(dllexport) smart_string
{
public:
smart_string();
~smart_string();
const char *get_data() const;
void set_data(const char *data);
void clear();
smart_string & operator += (const char *data);
private: std::string *data;
};
smart_string::smart_string()
{
data = new std::string();
}
smart_string::~smart_string()
{
if (data)
{ data->clear();
delete data;
}
}
const char * smart_string::get_data() const
{
return data->c_str();
}
void smart_string::set_data(const char *_data)
{
data->clear();
data->replace(0, data->size(), _data);
}
void smart_string::clear()
{
data->clear();
}
smart_string & smart_string::operator += (const char *_data)
{
*data += _data; return *this;
}
std::string str1 出现异常,直接导致程序崩溃
http://blog.csdn.net/moyumoyu/article/details/6712244class __declspec(dllexport) smart_string
{
public:
smart_string();
~smart_string();
const char *get_data() const;
void set_data(const char *data);
void clear();
smart_string & operator += (const char *data);
private: std::string *data;
};
smart_string::smart_string()
{
data = new std::string();
}
smart_string::~smart_string()
{
if (data)
{ data->clear();
delete data;
}
}
const char * smart_string::get_data() const
{
return data->c_str();
}
void smart_string::set_data(const char *_data)
{
data->clear();
data->replace(0, data->size(), _data);
}
void smart_string::clear()
{
data->clear();
}
smart_string & smart_string::operator += (const char *_data)
{
*data += _data; return *this;
}
相关文章推荐
- STL string 析构异常原因分析
- Windbg定位异常系列 - 给被调用函数的stl string类型参数传递了空指针引发的崩溃(windbg结合IDA一起分析)
- Dropdownlist中 DataTextFormatString = "{0:D2}" 不起作用的原因分析.
- 分析Tomcat6报异常: Parameters: Invalid chunk ignored 的原因
- 使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析
- 最近在TI的e2e以及相关QQ群众讨论时很多同学在做DSP算法或者在使用中断时SYS/BIOS被异常挂起,最终分析下来的原因是因为在中断上下文中使用了Vps_printf()或者是在禁止中断后恢复中
- For input string "1"异常的解决,以及原因。
- C# 外部组件发生异常原因分析 [分析]
- erlang监控进程在启动进程退出后异常退出原因分析
- Linux环境下Mongodb频繁异常退出的原因分析
- c 调用python出现异常的原因分析
- Sqlite 的String 自动转成数字原因分析。。
- Hibernate异常分析:faultString: could not initialize proxy - the owni
- vc6程序异常崩溃 - stl的basic_string内存破坏
- 邮箱css加载失败怎么办 网站css加载异常原因分析
- InvalidClassException异常的原因分析
- struts2 ognl.OgnlException: target is null for setProperty(null, "x", [Ljava.lang.String;@1a48515)异常原因
- 分析析JAVA中常见异常与原因
- string源码分析 ——转载 http://blogs.360.cn/360cloud/2012/11/26/linux-gcc-stl-string-in-depth/
- String内存溢出异常(错误)可能的原因及解决方案