***************菜鸟求教*************
String的引用计数为零时, String占用的内存空间自动释放,那么就是说,一个过程结束时,String的计数如果不为零,那么它就不会释放内存空间了!?这样就会引起内存泄露??
************************************
最近看一些Delphi的东西,还请各位高手多多指教。

解决方案 »

  1.   

    一般来说delphi会有MemoryManager记录着你分配的内存区域, 当程序结束的时候他会自动释放掉内存, 所谓的内存泄漏是指你程序主动的申请内存,但是由于程序设计的问题导致每次只分配内存,但不释放, 程序运行久了, 内存都让你的程序不断的占用而耗尽物理内存. 另外delphi的MemoryManager是可以替换的, 比如fastmm4, 所以程序完全退出时, 一般设计良好的manager都会释放掉内存的. 但是我不是告诉你程序可以不用注意"内存泄漏"的问题.
      

  2.   

    看不懂啊!
    我只是想知道String引用计数不为零,会引起程序占用的内存增加吗?
    楼上说的意思,这里不能成为泄露了!!
      

  3.   

    String引用计数不为零!怎样置零!
    上边说的内存增加,前提是过程用到一个全局变量(String类型),过程结束时该String类型的变量的计数不为零;而且这个过程频繁调用!
      

  4.   

    看起来有点乱………………
    ————————————————————————————
    String引用计数不为零的时候,需要不需要将它设置为零?
    如果需要,怎么做!!
      

  5.   


    局部string变量,都会在退出函数时自动释放的,内部实现的机制是引用计数减到0
    一般不需要认为设置为零,也无法设置为零
      

  6.   

    我说的是全局String变量!
      

  7.   

    只要你的是string变量, 你不必担心,delphi会自动处理其生命周期, 会自动管理好, 只要你不强制的人为改变其引用次数, 那就不会导致内存泄漏