Free:Destroys an object and frees its associated memory, if necessary.Use Free to destroy an object. Free automatically calls the destructor if the object reference is not nil. Any object instantiated at runtime that does not have an Owner should be destroyed by a call to Free, so that can be properly destroyed and the memory released. Unlike Destroy, Free is successful even if the object is nil, so if the object was never initialized, Free won't result in an error.记得看帮助三少 :o)

解决方案 »

  1.   

    但是如果我先创建了一个TStrings类型的变量,用完后删除,下次再用时如何判断这个变量是否存在呢?不用判断吧?
      

  2.   

    一个类被释放,只是内存被释放。类变量本身只是一个指针,就像动态内存释放后,指针不会自动变为nil一样。所以,要养成当类释放时,立刻将变量设为nil的习惯。这样再使用时就可以判断了。
      

  3.   

    这是普遍现象,C++BUILDER所有指针也这是这样;
    不仅仅是TStringList,其它所有控件也
    是这样:只释放单元,不管源指针;
    解决办法:很简单,释放后,自行将指针置空;
    原因:存在就是道理;对于源指针的情况可能较复杂,
          置空会出现技术问题,如果不是一个变量呢?或
          只读变量呢?(参数传递时);设计师也是"超高手",早就深思熟虑想到了;
          
      

  4.   

    可能这不认为是个问题!
    C++BUILDER 是用delete 来释放所有单元的,它的语法如下:<::> delete <cast-expression>
    <::> delete [ ] <cast-expression>
    delete <array-name> [ ];
    释放的一个表达式,自然不能再去置空了;
    还有链接是一个单向关系,源头可能很多,仔细想想就能接受了.