事故原因是内存泄漏,内存泄漏指的是在程序里动态申请的内存在使用完后,没有进行释放,导致这部分内存没有被系统回收,久而久之,可能导致程序内存不断增大,系统内存不足……引发一系列灾难性后果。
检查方法:
在main函数最后面一行,加上一句_CrtDumpMemoryLeaks()。调试程序,自然关闭程序让其退出(不要定制调试),查看输出:
{331} normal block at 0x00A05D50 , 415bytes long.
接下来,定位代码位置:
在main函数第一行加上:_CrtSetBreakAlloc(331); 意思就是在申请331这块内存的位置中断。然后调试程序,中断位置为内存泄漏位置。