最近我编的程序出了一个问题:
在我的WIN7系统上,编译链接运行都不报错,短时间的运行程序也没有问题,时间短的话可以运行成功,得到结果。
但是如果设定的参数大一些,让程序运行2天以上的时候,在运行到一半的时候就会报错,程序中止。如果点调试,会出来一个对话框,有路径选择:Please enter the path for DBGHeap.c 。这个C文件我在自己的安装程序里是找不到的。但是我看网上大家的说法,应该是内存越界或者是指向了释放的内存,我之前已经尽量把有malloc的地方都检查过了,能不用动态分配的就不用了,结果还是出了这个问题。
接着上面的说,点取消之后,弹出了一句话,user breakpoint called from code at ox409c30,点关闭之后就是汇编语言的调试了,我用shift+F11跳出函数一点一点的看,最后看到光标指向一句动态分配语句,现在我已经把这句动态分配改掉了,又重新开始运行程序了,希望这次能解决这个问题。
另外,在另外一台XP系统上运行这个程序的时候,报错的方式是不一样的,那台电脑上显示的信息是:应用程序发生异常,unknown software exception (0x80000003) 位置为0x0040a0f0.
这个程序很重要,下半年的成果就靠它了,一定得把这个问题解决啊。。。
昨天经过查找,终于把这个问题解决了,原因是野指针~!!
现在程序跑了4,5天了都没问题了。