New、Delete、GetMem、Dispose的区别和联系

本文介绍了Delphi中New和GetMem两种动态内存分配方式的区别及其对应的释放方法Dispose和FreeMem。New适用于固定类型的指针,而GetMem适用于尺寸随机的指针。正确使用这些函数可以有效防止内存泄漏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、New和GetMem都可以为指针类型动态分配内存,并且Delphi不会对由此分配的内存进行管理,即必须有相应的代码对其进行释放,否则内存将“丢失”,直到应用程序结束。  
  二、New分配的内存必须由Dispose来释放;GetMem分配的内存必须由FreeMem来释放;  
  三、New根据指针类型来自动计算需要分配的内存尺寸;GetMem必须指定尺寸;  
   
  因此,对于类型指针,一般用New和Dispose来进行管理;对于内存尺寸随机的指针(典型地如PChar),一般用GetMem和FreeMem来进行管理。从另一方面来说,在很多时候用哪一对例程都可以进行动态内存管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值