首页 新闻 搜索 专区 学院

【紧急-重金】delete 对象后,进程卡死

0
悬赏园豆:100 [已关闭问题] 关闭于 2015-07-23 10:53

XXX   Destory(A * a){

  delete a;

  LOG("COME HERE");

}

当程序运行到该函数时, delete a后(无法确定delete是否成功), 进程卡死, 无法执行后下一行LOG("COME HERE");

对象a, 非NULL,非野指针,对象a创建到销毁没有做其他改变(值没有变化)

类A中没有成员变量,有枚举类型定义,和一些成员函数

目前将delete 注释后, 程序可以正常运行

Neo_Lc的主页 Neo_Lc | 初学一级 | 园豆:10
提问于:2015-07-09 10:58
< >
分享
所有回答(4)
0

将 a 的代码贴出来。

Launcher | 园豆:45045 (高人七级) | 2015-07-09 11:03
0

a的内存是在stack上分配的,无需delete

dudu | 园豆:38829 (高人七级) | 2015-07-09 11:18

a是new出来的

支持(0) 反对(0) Neo_Lc | 园豆:10 (初学一级) | 2015-07-09 11:32

@Neo_Lc: 方法参数中的a只是a的一个拷贝,方法调用结束就会被销毁

支持(0) 反对(0) dudu | 园豆:38829 (高人七级) | 2015-07-09 11:35

@Neo_Lc: 推荐一篇博文:函数调用过程探究

支持(0) 反对(0) dudu | 园豆:38829 (高人七级) | 2015-07-09 11:40
0

你其他地方有用到传进来的这个a,你这里delete a,其它地方的a没有了,就报异常了

Jeece | 园豆:177 (初学一级) | 2015-07-09 16:19
0

delete a的时候会调用a的析构函数,看看是不是析构函数执行的时候导致死锁了。

天方 | 园豆:5266 (大侠五级) | 2015-07-10 23:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册