void EventCloseServer::act(){
Server* serv = Program()::getServer();
if (serv != NULL) {
if (serv->running()) {
serv->stop();
serv->sync();
}
delete (serv);
}
}
当我执行此代码两次时出现问题。第一次,功能delete(serv)
正常。第二次,它在调用之前serv->running()
和之后导致分段错误serv != NULL
。我不明白为什么第二次执行进入第一if
条语句。下面的结果不是真的myObject = NULL
吗?
Class* myObject = new Class();
/***/
delete(myObject); /* myObject = NULL ? */