重构>>操作符时编译运行都没问题,运行完关闭黑窗口的时候弹出debug error是什么原因?

qq_42092095 2018-05-06 03:09:09
这是重构>>操作符的代码,字符串类的成员变量包括m_space指针,指针指向字符串的首地址。弹出debug error是不是因为没有释放m_space指针所指向的原来的内存空间导致内存泄漏?
istream& operator>>(istream &cin, Mystring &str1)
{
cin >> str1.m_space;
return cin;
}
void main()
{
Mystring s2("bb");//用字符串"bb"初始化s2
cout << "输入字符串" << endl;
cin >> s2;//重构>>操作符,将输入的字符串赋值给s2
cout << s2 << endl;//输出字符串s2
system("pause");
return ;
}
...全文
384 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-05-07
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
paschen 版主 2018-05-06
  • 打赏
  • 举报
回复
也可能使用堆内存越界了,破坏了堆,结束时导致崩溃

64,636

社区成员

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

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