首页 > 代码库 > string 对象析构的问题
string 对象析构的问题
情景:程序加载dll,dll中的函数调用另一个dll中的导出函数.
string getName()
{
string name="";
regmatch(text,&name);
return name;
}
do
{
string m_name=getName();
}while(0);
当m_name析构的时候,发生异常
分析其中的原因,应该是name 的内存不够,为了保存name的结果,在regmatch函数调用中分配了新的内存,当getname调用完之后导致堆栈上的name销毁内存,但此时的内存是regmatch()导出函数分配的,故会出现异常。
如果改成如下函数
string getName()
{
string name(1024,0);//假设regmatch 取得的结果小于1024。
regmatch(text,&name);
return name;
}
则不会发生异常。
string 对象析构的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。