对大家来说很简单的问题:dispose、free、freemem有什么区别,各自在什么情况下使用?

地球籍华人 2003-10-17 11:45:55
dispose、free、freemem有什么区别,各自在什么情况下使用?
...全文
269 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
地球籍华人 2003-10-17
  • 打赏
  • 举报
回复
谢谢了!
zhoutian618 2003-10-17
  • 打赏
  • 举报
回复
用GetMem申请的内存用FreeMem来释放。
用New申请的内存用Dispose来释放。

Free一般是类的释放方法。如果类已经释放调用Destroy方法释放,没有已经释放了就直接返回。
draking 2003-10-17
  • 打赏
  • 举报
回复
而Free方法,它不是虚方法,它是为了那些搞不清对象是否为空(nil)的情况下能安全释放对象而专门提供的。其实,搞不清对象是否为空,本身就有程序逻辑不清晰的问题。不过,任何人都不是完美的,都可能犯错,使用Free能避免偶然的错误也是件好事。然而,编写正确的程序不能一味依靠这样的解决方法,还是应该以保证程序的逻辑正确性为编程的第一目标
地球籍华人 2003-10-17
  • 打赏
  • 举报
回复
请问draking,如果用dispose来释放getmem(),这样好吗?
draking 2003-10-17
  • 打赏
  • 举报
回复
Dispose 函数 释放动态变量所占的空间
FreeMem 函数 按给定大小释放动态变量所占的空间

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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