动态数组的释放(50分)

  • 主题发起人 主题发起人 zhl_yt
  • 开始时间 开始时间
Z

zhl_yt

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高人,我使用一个如下的动态数组,不知道是否需要释放:
//变量定义
cXSYFPBLArray:txsyfparray;
//数组定义
TXSYFP = record
XSYID: string[10];
XSYXM: string[30];
XSYZB: String[30];
SZBL:double;
end;

txsyfparray = array of TXSYFP;
我使用下述释放:
setlength(cXSYFPBLArray,0);
我只有74分了,全部给大家
 
动态数组是生存期自管理型,一般不需要释放
如果你需要释放直接txsyfparray := nil就OK了
 
NIL 很多地方都可以用。
 
你数组中要是包含了对象类的实例就要自己一个一个Free
 
楼主结帖吧,2楼和4楼都是答案。
 
不要听别人的,你自己的
setlength(cXSYFPBLArray,0);
是正确的。
 
一般来说是不需要显式的去释放动态数组的,如果你要保险一点,加入下一句就可以了。
txsyfparray := nil
 
freeandnil(cXSYFPBLArray); 最绝,释放后就完全不能用了。
 
cXSYFPBLArray是数组,不是对象哦!!!!
 
楼主的基本功不行啊,2楼和4楼的答案都是对的。
 
各位高人,我是半路出家学习Delphi,没有深究。
请各位高人,我的数组中包含的是Record,看我的实例,是否需要显式释放?
因为星期六的时候,经常出现Delphi出现非法操作,不知道是不是因为没有显式释放引起的

请4楼的兄弟判断一下,我的数组中包含了对象吗?
 
如果你的record就是上面的几个变量,出现非法操作的最大可能是下表越界,而非释放问题。仔细看看你代码有没有下表越界咯.
一般的record(就如你题目中的record)不需要手工去释放的。
 
多人接受答案了。
 
后退
顶部