Delphi New,Getmem,ReallocMem联系与区别

摘要:
2、 New分配的内存必须由Dispose释放;GetMem分配的内存必须由FreeMem释放;3、 New根据指针类型自动计算要分配的内存大小;GetMem必须指定大小;因此,New和Dispose通常用于管理类型指针;具有随机内存大小的指针通常由GetMem和FreeMem管理。

procedure New(var P: Pointer);   {为一个指针变量分配内存,会自动计算指针所指数据结构需要空的空间大小}

procedure GetMem(var P: Pointer; Size: Integer); {分配一个指定大小的内存块(连续),并用P指向它}

procedure ReallocMem(var P: Pointer; Size: Integer); {重新分配指定大小内存块,参数P必须是nil或者指向一个由GetMem, AllocMem, 或 ReallocMem分配的内存变量,其分配的内存是连续的,会把前面已有的数据移到新分配的内存中去}

通常采用New分配内存比较好。

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

免责声明:文章转载自《Delphi New,Getmem,ReallocMem联系与区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇模型融合crontab命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi7中编译提示“Unsafe type 'PChar'”的原因及处理办法

delphi7中加入了对.net的支持 在.net中是没有指针的(托管环境中),所以指针都是不安全的,不符合.net规范 所以d7里有警告,可以不管它 DELPHI7已经考虑到了移植到点NET的问题,至于为什么有的人遇到,有的人没有遇到,那是因为各人的编译选项不同。在Project菜单下选Options“Compiler Messages”,最下面三个选项...

11-c++虚拟函数

虚拟函数 #include "stdio.h" class A{   public:     void print()     {       printf("%s","this is A ");     } }; class B:public A{   public:     void print()     {       printf("%s","...

C++11新特性之十:enable_shared_from_this

enable_shared_from_this是一个模板类,定义于头文件<memory>,其原型为: template< class T > class enable_shared_from_this;       std::enable_shared_from_this 能让一个对象(假设其名为 t ,且已被一个 std::sha...

SetFilePointer 使用

今天在使用SetFilePointer 的时候出现了溢出的问题,使用了SetFilePointerEx,出现了指针错位的问题,其实只要设置LONGLONG64位,然后分别设置SetFilePointer 的高低位不会出现溢出的问题 下面是转的一篇使用这个接口的博文 DWORD SetFilePointer(   HANDLE hFile,   LONG...

用C#操作图像的另一种方法——内存法

在本人的随笔 《在c#中用指针操作图片像素点》 中,介绍了两种不安全的方法,优势就在于时间效率上的提升,但是C#毕竟是安全性的语言,这里就介绍一种执行效率很高的安全方法—— 前几天在图书馆里发现了一本用C#讲图形学的书,其中就介绍了一种时间效率比指针法稍低的安全方法 //从文件中获得Bitmap对象 Bitmap bitmap = Bitmap.Fr...

Delphi下使用指针的简单总结(指针的赋值,数组和指针的转换,函数指针的使用)

由于最近公司太忙,好久没有更新我的BLOG了。原来想着写写关于HOOK驱动的文章,可是最后想想好久已经没有做驱动的东西了,怕写出来有错误,于是作罢。开发游戏也有一段时间了,发现使用DELPHI来开发网络游戏不了解DELPHI下指针的使用是完全不行的。所以今天我简单总结以下我使用DELPHI指针的心得。希望对大家有所帮助。 记得在大学学习C语言的时候在谭浩强...