还没怎么用过Delphi中的指针,看了几个例子代码之后发现几个迷惑地方,还请各位援手。1.Delphi 6 开发人员指南里说“使用Dispose释放任何New()申请的任何内存”,至少说明指针不是“生存期自动管理”的了?当分配的内存被添加到TTreeView、TList等中时也需要用Dispose释放吗?
2.Tlist.Remove的时候,会把指针对应的内存给释放吗?还是要用Dispose手工释放?FreeAndNil(TList)会释放各指针对应的内存吗?还是仅仅释放Tlist本身?
3.TTreeView中删除节点时,是否会把指针对应的内存释放?
4.当指针指向结构体时,发现p.ID和p^.ID是一样的?Delphi不是一直说语法严禁吗,怎么会一样的呢?

解决方案 »

  1.   

    1.在窗体OnClose事件中遍历每个TTreeView等的节点再Dispose;
    2.我想要手工去放;
    3.不太明白是否会;
    4.Delphi自动转过去了,它很聪明啊
      

  2.   

    1.在窗体OnClose事件中遍历每个TTreeView等的节点再Dispose;
    3.不太明白是否会;
    这两个不是前后矛盾吗?
      

  3.   

    3.TTreeView中删除节点时,是否会把指针对应的内存释放?--
    :b 又找些资料看过,它不会自动释放,删除前手动释放会更安全而不会造成内存泄露