1

我有一个关于段错误的基本问题。以下伪代码更好地解释了我的问题。我有一个指向外部 api 的指针,在运行它时,会发生段错误。我的问题是接下来会发生什么。指针api指向的内存会被删除吗?段错误发生后操作系统会做什么?

int main () { 
    XAPI* api = new XAPI();

    // Assume: there is a segfault while in run()
    // What happens after segfault
    // does `delete api;` get executed?

    api->run();

    delete api;

    return 0;

}
4

1 回答 1

1

的默认处理SIGSEGV是终止并生成核心转储。该进程被终止,其相关资源被释放。

除非程序处理信号,否则不会执行以下代码。

有关更多信息,请参见signal(7)手册页。

于 2013-09-12T15:00:25.027 回答