void EventCloseServer::act(){
Server* serv = Program()::getServer();
if (serv != NULL) {
if (serv->running()) {
serv->stop();
serv->sync();
}
delete (serv);
}
}
このコードを 2 回実行すると問題が発生します。初めて、関数はdelete(serv)
うまくいきます。serv->running()
2 回目は、 の呼び出しの前後でセグメンテーション違反が発生しserv != NULL
ます。if
2 番目の実行が最初のステートメント内に入る理由がわかりません。次の結果になるのは本当ではありませんmyObject = NULL
か?
Class* myObject = new Class();
/***/
delete(myObject); /* myObject = NULL ? */