mpr*_*net 2 c memory memory-management
以下代码访问不再分配的内存.
#include <stdio.h>
int main()
{
int * ptr = new int(5);
delete ptr;
return *ptr;
}
Run Code Online (Sandbox Code Playgroud)
指针访问内存不再分配,但直到内存可访问它才会返回一个值.我想知道,实际上程序是否可能因分段违规信号而崩溃.
编辑:我在一个循环中运行超过100000次没有崩溃,这并不意味着它永远不会崩溃,只是它没有在这些期间崩溃100000次.也许用这么简单的程序是不可能的?
我想知道是否有可能这会使程序崩溃,发生分段违规信号或类似的事情.
是.取消引用已删除的指针是未定义的行为.可能发生的一件事就是崩溃.另一个是该程序可以毫无问题地默默退出.