现在我的程序运行一段时间后出现下面的错误,不知道是哪里的原因!
  Runtime error!
This application has requested the runtime to terminate it in an unusual way.
这是release版的。如果是debug版的,则会出现debug error的错误。实在是不知道啊!!还有程序运行一段时间后还会出现虚拟内存太低的错误,然后程序就自动退出!但是也没有显示内存泄漏阿!???

解决方案 »

  1.   

    贴代码或者Debug Error的信息出来。
    而且你说的现象就是内存泄露
      

  2.   

    debug error好像也是这个错误,代码太多了不知道是哪里引起的。我用的是net 2003,他没有显示有内存泄漏阿?我都快急死了!!!
      

  3.   

    http://support.microsoft.com/?kbid=884538
    上面微软的网站里倒是说这个错误了,不过他说vc 6.0的程序在XP下可能会出现上面的错误。但是我的是net 2003+xp+sp2下写的程序在2000下出的问题,怪!
      

  4.   

    不一定是内存泄漏,内存泄漏的定义是你自己分配的内存没有释放。但是假如你使用的是windows自己分配的资源,而没有告诉windows释放的话,就会出现你的现象。比如你创建HBITMAP, HICON这样的东西不释放,虽然严格来说是内存泄漏,但是VC并不检测这种泄漏。所以只能好好检视一下代码了不知道Purify之类的代码检查工具能不能检查这些情况。
      

  5.   

    代码检测工具也不能检测所有状况啊。
    用BoundsChecker就不能查出来这种问题:vector<int *> vpInt;
    int *g_pint = NULL;
    函数A中初始化
    g_pint = new int;
    vpInt.push_back(g_pint);函数B中使用
    g_pint = new int;
    g_pint = vpInt.pop_back(g_pint);函数C中结束
    if (g_pint)
    {
        delete g_pint;
        g_pint = NULL;
    }
      

  6.   

    随手写的,好像有点错误。
    g_pint = vpInt.pop_back();
      

  7.   

    看到很多人提到bound checker 网上找不到下载 谁能给个连接看看?
      

  8.   

    函数B中使用
    g_pint = new int;
    g_pint = vpInt.pop_back(g_pint);g_pint不应该再new了,去掉g_pint = new int;
      

  9.   

    我这两天接二连三地碰到这种问题。用F5的话,定位不到的,最终一般会定位到内部的那些.cpp中去。我的解决办法就是苦思冥想,尝试屏蔽一些功能,然后一点点撤掉注释(也就是一点点加上代码),人工定位。
    或者AfxMessageBox("1")...("2")...然后运行,看看到哪一步出错。
    或者写日志。