请问 程序运行结束时,是不是所有的内存都会被Win操作系统回收,所以只要保证程序运行时不泄露就可以了?

解决方案 »

  1.   

    要是那样的话就不会泄漏了,内存泄漏是因为你在内存中new了东西,而程序结束时没有释放掉这个内存,这个内存将永远不会被释放,直到下次计算机重新启动。
      

  2.   

    另外,这是一种责任的问题
    当提供接口给客户时,客户并不知道是如何管理内存的,可能客户频繁的加载和卸载LZ编写的DLL或者其他的类,
    在这种情况下就会出现问题。
      

  3.   

    to iyranly
    太恐怖了,不要误人子弟
     
    to LZ,
    程序一退出,new空间系统会自动收回其实,如果你能保证软件长时间运行过程中new函数调用的频率为固定次数,对系统没有影响
    但养成好习惯是对的
      

  4.   

    new之后的空间是会否会被系统回收要看您所运行的系统,各个系统的内存回收机制并不是一样的。
    例如:你CreateThread后ExitThread 但是该Thread并不会立即被回收一些GDI对象等等也是如此。
    你做的只不过是标记该对象无效告诉系统可以删除它。
      

  5.   

    不用频繁的new,即使不泄漏,也会造成大量的内存碎片,使性能下降
    而其它的资源泄漏会造成更大的问题,如不能创建内核对象,不能画图等