下面的代码访问不再分配的内存。
#include <stdio.h>
int main()
{
int * ptr = new int(5);
delete ptr;
return *ptr;
}指针访问内存的权限不再分配,但在内存可访问之前,它只返回一个值。我想知道,实际上,该程序是否有可能以分段违规信号而崩溃。
编辑:我在一个循环中运行了超过100000次,没有崩溃,这并不意味着它永远不会崩溃,只是它没有崩溃在这100000次。也许用这么简单的程序是不可能的?
发布于 2014-01-17 16:05:16
我想知道,这是否有可能使程序崩溃与分割,违规信号或类似的事情。
是。取消引用已删除的指针是未定义的行为。其中一件事可能会发生,那就是坠机。另一个原因是程序可以在没有任何问题的情况下悄然退出。
https://stackoverflow.com/questions/21190406
复制相似问题