本人自编的一个程序,在配置比较低的电脑上运行问题随机出现,但是在配置高点的电脑上运行就没问题。
    程序为循环运行某一段程序,循环次数在程序运行开始前指定,有时候整个过程没问题,有时候问题随机出现,而且不确定在循环的哪次出现,但是肯定不在循环的第一次出现。
    程序用C++编写,我用VS 2008调试,出问题的时候程序跳到微软的函数库free.c中,代码如下:
#endif  /* _WIN64 */
        {
            retval = HeapFree(_crtheap, 0, pBlock);
            if (retval == 0)
            {
                errno = _get_errno_from_oserr(GetLastError());
            }
        }
}   用五台电脑测试过,两台性能比较高的电脑上不出现这个问题,但是另外三台配置稍低点的就出现问题。
问题提示:
DQNES.exe 中的0x5f97e300 处最可能的异常: 0xC0000005: 读取位置0x00000080 时发生访问冲突
DQNES.exe 中的0x5f97e300 处未处理的异常: 0xC0000005: 读取位置0x00000080 时发生访问冲突

解决方案 »

  1.   

    TO  VisualEleven:
         请问指针越界是因为代码有漏洞,没编完善吗?  这个问题会导致软件不稳定吗?
      

  2.   

    TO  ayanamiwww:
       请问,如果是定时炸弹,应该是程序运行到那个代码了就会出问题。但是我的程序是在某台电脑上运行的时候使有时出现有时不出现,但在性能稍微好点的电脑上运行直接就不出现问题,问题出现的很随机,这怎么算是定时炸弹呢?
      

  3.   

    不好意思,打错了几个字,改正一下:  TO ayanamiwww:
      请问,如果是定时炸弹,应该是程序运行到那个代码了就会出问题。但是我的程序是在某台电脑上运行的时候是有时出现有时不出现,问题出现得很随机。但在性能稍微好点的电脑上运行直接就不出现问题,这怎么算是定时炸弹呢?
      

  4.   

    问题解决,原因:Image2指针指向一个图片,而同时在OnDraw(CDC* pDC)刷屏显示图片的时候也会用到指针Image2,而由此我的程序是循环执行的,在进行下一次执行的时候先释放Image2指向的内存,此时,在性能比较低的计算机中就会出现Image2指针指向的内存正在释放的同时OnDraw函数也调用指针Image2进行刷屏,所以内存发生冲突,内存越界。解决方法是由于每次循环用到的内存大小都一样,所以循环过程中直接不释放内存,软件退出的时候再释放。
    感谢Ayanamiwww  VisualEleven  xuddk727~~