进程被强制杀死,析构函数没有运行?
写了一个控制台程序,在一个类的析构函数中,把数据刷新到磁盘文件中。我没有主动调用delete,而是程序结束时,系统清理类对象时,自动调用析构函数。
本来运行的好好的。很正常。可在二逼的舍友电脑上就不正常了。他说磁盘中文件中的数据更本没有刷新,老是0。我看他运行的时候,不是让程序正常结束,而是点控制台右上角的X,强制关闭。我猜想是析构函数没有运行。我让他正常结束程序后,就正常了。
我今天又写了一个测试程序,看看程序被强制退出时,析构函数会不会运行。
为什么点右上方的X按钮,析构函数就不会运行呢?
怎样才能避免这种隐患?
析构函数没有运行会造成内存泄露吗? 似乎很霸道!
[解决办法]