string成员默认构造,析构时引发core问题求教

ptCsdn1212 2020-12-21 10:47:48
typedef unsigned int UINT32;

typedef struct
{
UINT32 ucNumber;
string strNumber;
}HSS_SPS_USER_QRY_COND_T;

class CSpsAppThread
{
public:
explicit CSpsAppThread(UINT32 key);
virtual ~CSpsAppThread(){};
CSpsAppThread();
UINT32 m_usPdbaNo;

HSS_SPS_USER_QRY_COND_T m_stQryCond;
}

CSpsAppThread::CSpsAppThread(UINT32 key)
{
....
return;
}

CSpsAppThread::CSpsAppThread()
{
CSpsAppThread(1);
return;
}


CSpsAppThread g_clsSpsApp;

定义g_clsSpsApp对象的时候,生成了两个CSpsAppThread类型的对象,通过CSpsAppThread(1)构造的对象,程序未结束就会进行析构,但是层层析构的时候,修改string strNumber成员的时候,出现了core。调用栈如下:


gdb 调试时p g_clsSpsApp.m_stQryCond.strNumber ,是一个非法的地址,但是p g_clsSpsApp.m_stQryCond.strNumber.c_str()时,是一个空值“”。

请大神们帮忙看下,析构string成员的时候为啥会core呢?
...全文
151 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-08
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
ptCsdn1212 2020-12-21
  • 打赏
  • 举报
回复
数据成员m_usPdbaNo和m_stQryCond是private的,

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧