社区
语言基础/算法/系统设计
帖子详情
请教,动态数组用完后需要手动释放吗?
lonelysoul2000
2006-01-04 10:49:12
rt
...全文
771
11
打赏
收藏
请教,动态数组用完后需要手动释放吗?
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
蓝色光芒
2006-01-06
打赏
举报
回复
动太数组的分配也是在堆上完成的,不过不需要手工释放,是因为过程结束时,系统会自动加上
DynArrayClear来清除分配的空间,不管是否分配了空间。
只要定义了DynArray(ArrayVar : array of xxx);然后产生了这个变量的引用,系统就会自动加上,
因此放到过程结束地方的SetLength(ArrarVar,0);意思不大。
lonelysoul2000
2006-01-06
打赏
举报
回复
谢谢~结贴了
蓝色光芒
2006-01-06
打赏
举报
回复
要,这个相当于调用GetMem
lonelysoul2000
2006-01-06
打赏
举报
回复
谢谢各位的回答,
再请教一下,用new(Pointer)语句后,要不要手动释放Pointer内存呢?
var
P:PString;
begin
New(P);
P^:=IntToStr(i);
...
zhanghao16
2006-01-05
打赏
举报
回复
说到资源释放问题,也想谈谈自己的看法,希望楼主不要怪我抢地盘 :)
都说程序中,每个对象或类型变量都有自己的生命周期和作用域,
当它们超出自己的作用域时,也就意味着生命周期结束了。。。。
以前常听人讲,当生命周期结束时,系统应该是自动回收内存间的。
那么,问题来了,在一个过程或函数开始时生成一个局部对象,为什么很多程序员一定要
在过程结束时把它释放掉。。。如果不主动将它释放的话,真的会占用内存吗?过程或函数
结束时,局部对象不会自动被系统回收吗?
最后,到底在什么情况下,才必须要手动释放内存呢?希望楼主和各位前辈谈谈在资源释放问题上的心得?
xuancaoer
2006-01-05
打赏
举报
回复
mark
ywx2008
2006-01-05
打赏
举报
回复
学习了
ZyxIp
2006-01-05
打赏
举报
回复
作用域的问题根本上来说还是要看 数据是保存在什么地方的。如果是保存在堆上,则要自己手动释放,如果是保存到栈上则是系统会帮你释放的。
对于Delphi 来说所有的对象创建都是在堆上分配内存的所以要自己来释放。
procedure testPro;
var
MyEdit:TEdit;
AInt:Integer;
AStr:String;
AIntArr:Array of integer;
ACharArr :Array [0..9] of Char;
begin
MyEdit:=TEdit.create(Nil);
AInt:=3;
AStr:='abcd';
SetLength(AIntArr,10);
ACharArr[0]:='a';
end;
Myedit 是要自己手动释放的,其它则不用。如果用了GetMemory 也是要自己释放的。
云帆
2006-01-04
打赏
举报
回复
上面的说的很清楚了
forestry98
2006-01-04
打赏
举报
回复
如果数组里面没有手动Create的类的话,是不需要手动释放的.
但是如果你的数组里有大量的数据,用完后也可以用SetLength(arrayVar,0)释放一下的.
老之
2006-01-04
打赏
举报
回复
一般不用手动释放,它会自己处理。
如果要手工释放可以赋值为nil。
微信小程序初级教程初中高阶段套餐Python版
后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,要求有java基础,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以
请教
老师。购买课程后请联系老师,提供单号,给...
golang mysql断线_golang,mysql_golang 连接、操作完mysql, 对mysql的连接会自动关闭,还是必须要
手动
关闭?,golang,mysql - phpStudy...
golang 连接、操作完mysql, 对mysql的连接会自动关闭,还是必须要
手动
关闭?参考 astaxie 的代码import (_ "code.google.com/p/go-mysql-driver/mysql""database/sql""fmt"//"time")func main() {db, err := sql.Open("mysql", "astaxie:astaxie@/te...
解析Java异常机制:捕获编程中的错误,保障代码稳定性
工作中,程序遇到的情况不可能完美。比如:程序要打开某个文件,这个文件可能不存在或者文件格式不对;程序在运行着,但是内存或硬盘可能满了等等。软件程序在运行过程中,非常可能遇到刚刚提到的这些问题,我们称之为异常,英文是:Exception,意思是例外。遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理,安全的退出,而不至于程序崩溃呢?
托管与非托管
KindEditorC#和C++ 关于托管与非托管的问题 我是做Asp.net 和C#.net的;大学里没有认真学习基础知识。现在十分后悔,因为我不想一直做一个WEB程序员。 现在
请教
一下您,我现在做的C#是托管的,也就是说我new了一个对象后可以不管它的生存状态,到一定时候.net framwork会自动回收它。 那么如果我调用该对象的Dispose()方法,是否就是
手动
将它回收了,这就是非托管代码的意思吗? 另外C++似乎是非托管的,在C++中是否是调用Delete()函数呢? C#是
电脑知识大全
电脑知识大全详细研究WinXP中CPU占用100%原因及解决方法CPU占用100%案例分析 电脑硬件知识大全(看完了你就成硬件高手了)电脑故障排除之“八先八后”网络诊所病历大公布机器响铃不断,这时,如果你知道响铃的含意,就不用去
请教
专业人员了。硬件故障判断如何预防使用软件引发电脑硬盘的六大"硬伤扩展名查询大全windows罕见技巧集(收集整理)windows XP技巧终极必杀全集正确安装机器不
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章