請問SetLength給Array設置長度需不需要手動釋放内存

特兰 2006-08-29 05:10:30
如題,比如我們用GetMem得到的内存就需要自己釋放
...全文
230 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
特兰 2006-08-31
  • 打赏
  • 举报
回复
如果我没有将数组中的元素设置为nil,就直接setlength 0 ,可以吗?
yinxu 2006-08-30
  • 打赏
  • 举报
回复
这个要根据情况来,如果你的动态数组管理的数据是用GetMem, new等动态创建的,那么是需要的,否则不需要.
SmallMaker 2006-08-30
  • 打赏
  • 举报
回复
setlength之前需要释放内存
Dynamicarr:=nil;
setlength(dynamicArr,10);
OO_is_just_P 2006-08-30
  • 打赏
  • 举报
回复
根本不需要,除非必要。
sunnysmile 2006-08-29
  • 打赏
  • 举报
回复
设置为nil就可以了
AOCOC 2006-08-29
  • 打赏
  • 举报
回复
都说了,JF
小呆之家 2006-08-29
  • 打赏
  • 举报
回复
andyzhou1101(〆.赱 極端(http://lovelcy.blogcn.com)) ( ) 信誉:100 Blog 2006

已讲得很清楚了。

呵~~。手动清除下也是可以的。

var
DynamicArr: arra of byte;

setlength(dynamicArr,10);
....
//Dynamicarr:=nil;
//setlength(DynamicArr,0);
andyzhou1101 2006-08-29
  • 打赏
  • 举报
回复
动态数组是生存期自管理的,所以在用完它们以后没有必要释放,因为在离开作用域时它们会被
释放。然而,可能在离开作用域前,就需要删除动态数组(例如它用了很多内存)。要这么做,仅需要把nil赋值给动态数组
postren 2006-08-29
  • 打赏
  • 举报
回复
不需要

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧