还没怎么用过Delphi中的指针,看了几个例子代码之后发现几个迷惑地方,还请各位援手。1.Delphi 6 开发人员指南里说“使用Dispose释放任何New()申请的任何内存”,至少说明指针不是“生存期自动管理”的了?当分配的内存被添加到TTreeView、TList等中时也需要用Dispose释放吗?
2.Tlist.Remove的时候,会把指针对应的内存给释放吗?还是要用Dispose手工释放?FreeAndNil(TList)会释放各指针对应的内存吗?还是仅仅释放Tlist本身?
3.TTreeView中删除节点时,是否会把指针对应的内存释放?
4.当指针指向结构体时,发现p.ID和p^.ID是一样的?Delphi不是一直说语法严禁吗,怎么会一样的呢?
2.Tlist.Remove的时候,会把指针对应的内存给释放吗?还是要用Dispose手工释放?FreeAndNil(TList)会释放各指针对应的内存吗?还是仅仅释放Tlist本身?
3.TTreeView中删除节点时,是否会把指针对应的内存释放?
4.当指针指向结构体时,发现p.ID和p^.ID是一样的?Delphi不是一直说语法严禁吗,怎么会一样的呢?
2.我想要手工去放;
3.不太明白是否会;
4.Delphi自动转过去了,它很聪明啊
3.不太明白是否会;
这两个不是前后矛盾吗?
:b 又找些资料看过,它不会自动释放,删除前手动释放会更安全而不会造成内存泄露