!!!!!!!!!!!!!为什么delete一个对象会导致stack overflow,而且没法跟踪?

yangze 2002-01-25 06:31:20
to : wabc and Bosicat
当我执行以下两句时,正确:
tempReadDWG=new CReadDWG();
delete tempReadDWG;

但是:按程序执行,执行delete时,stack overflow
tempReadDWG=new CReadDWG();
//初始化tempReadDWG的类成员
.......
//初始化完毕
delete tempReadDWG;

...全文
136 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
111222 2002-01-26
  • 打赏
  • 举报
回复
你好好看看CReadDWG类,多注意一下构造函数和西够函数
yangze 2002-01-26
  • 打赏
  • 举报
回复
FrankZhang123,niu_a:
我的错误提示是这样的:unhandle exception in testdll.exe(edllrcad.dll):
0xc00000fd:stack overflow.
奇怪的是:我一调用delete objecttemp1; //objecttemp1 是从MFC extension dll
--edllrcad.dll的类中实例化的一个对象;无论在testdll.exe,还是在edllrcad.dll
中都没办法跟踪调试!
Icic 2002-01-26
  • 打赏
  • 举报
回复
CReadDWG类是什么类?是否有由基类派生出的类和基类对某一对象重复删除?是否象CWinThread类一样具有默认删除自己的特性,从而导致重复删除?
FrankZhang123 2002-01-25
  • 打赏
  • 举报
回复
stack overflow错误通常是函数无限递归调用产生的,在delete时发生这种错误,我想可能是析构函数中delete某个对象时又释放了该对象本身。
niu_a 2002-01-25
  • 打赏
  • 举报
回复
在类CReadDWG析构函数设置断点(包括其基类,基类的基类,基类的基类的...
yangze 2002-01-25
  • 打赏
  • 举报
回复
Bosicat:
能给我解答一下吗?
yangze 2002-01-25
  • 打赏
  • 举报
回复
我要怎么才能跟踪到内存泄漏发生在什么地方?

1,660

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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