obj := TobjClass.create;
.......................//其它代码
obj.free;//经常free很容易出错。内存不能读写之类的错
obj := TobjClass.create;//free后创建
.........
obj := TobjClass.create;
.......................//其它代码
obj := TobjClass.create;//不释放直接create

解决方案 »

  1.   

    obj.free;//经常free很容易出错。内存不能读写之类的错
    不是free很容易出错,而是错误的free很容易错处第二个代码有内存泄漏
      

  2.   

    理论上不释放直接create也可以,你的程序貌似也看不出什么异常,不过内存泄漏是缓慢积累的,如果你想弄个长时间稳定运行的东东,或者发布产品,还是用1L的代码吧
      

  3.   

    要看你TobjClass怎么写的,如果这里面有未释放的内存或者有内存泄露就会出错,如果写的没问题是不会出错的。一定要相信电脑。
      

  4.   

    obj := TobjClass.create;
    ..........
    if assigned(obj) then freeandnil(obj);  // or obj.freeobj := TobjClass.create;
      

  5.   

    delphi没有GC机制,所以还是养成良好的“回收”习惯比较好
      

  6.   

    用这个处理有效.
    不用时, 先释放创建的内存, 再将这个对象赋值为 nil.