Delphi常用内存管理函数
来源:互联网 发布:穿旗袍必知礼仪 编辑:程序博客网 时间:2024/04/29 21:28
1.New、Dispose、GetMem、FreeMem
New
procedure New(var P: Pointer);:创建一个新的动态变量,并把指针P指向这个新创建的变量。分配的内存大小由P指针表示的类型决定。
Dispose
procedure Dispose(var P: Pointer);:用来释放一指针变量所占用的内存地址。如使用{$I+},会产生一个EInvalidPointer异常。
Getmem
procedure GetMem(var P: Pointer; Size: Integer);:为一指针分配一定大小的地址空间。
FreeMem
procedure FreeMem(var P: Pointer[; Size: Integer]);:释放某一指针在内存中用的地址空间。
procedure TForm1.ButtonClick1(Sender: TObject);var P:PString;begin getmem(p,1256); //为指针分配指定内存大小的指针 p^:='MingRiSoft'; edit1.Text := p^; dispose(p); //释放指针地址 edit2.Text := P^;end;
在创建指针和分配内存地址时,优先使用New和Dispose。
2.AllocMem、ReallocMem、SysFreeMem
AllocMem
function AllocMem(Size: Cardinal): Pointer;:用于在堆中分配一块内存区域,并初始化每一字节为0。其返回值为一个指向堆中已分配内存的指针。
RellocMem
procedure ReallocMem(var P: Pointer; Size: Integer);:用于重新分配一个动态变量。这里需要讨论几种情况:
1、如果P为nil并且Size为0,则RellocMem不分配内存;
2、如果P为nil但Size不为0,则RellocMem分配内存的过程等同于GetMem;
3、如果P不为nil但size为0,则RellocMem将地址引到P并并设置P为nil。则此过程就类似于FreeMem的操作。
SysFreeMem
function SysFreeMem(P: Pointer): Integer;:释放指针指向的内存空间。其返回值为0;否则返回非0。
procedure TForm1.Button1Click(Sender:TObject);var i : Pshortstring;begin i:= AllocMem(256); //在堆中分配内存 i^ := 'aaa'; ReallocMem(i,256); //重新分配内存 SysFreeMem(i); //释放内存end;
3. 其它内存函数
SysReallocMem
function SysReallocMem(P: Pointer; Size: Integer): Pointer;:用于重新为变量分配内存区域。主要用于调节动态分配内存的空间大小。
Finalize
procedure Finalize( var V [; Count: Integer] );:用来动态分配变量的内存地址,这些分配的内存空间由其它方法而不是Dispose方法来释放空间。
- Delphi常用内存管理函数
- Delphi常用内存管理函数
- delphi内存管理
- delphi内存管理
- Delphi内存管理
- Delphi 动态内存管理
- delphi 常用函数
- Delphi常用函数
- Delphi常用函数应用
- Delphi 常用函数
- Delphi常用函数
- Delphi常用日期函数
- Delphi常用函数参考
- Delphi 常用函数
- delphi常用函数
- delphi常用函数
- Delphi 常用API 函数
- Delphi 常用函数
- [若有所悟]IT小兵总结IT人特点及挽留IT人才的九大策略
- 题目1490:字符串链接
- UNIX文本编辑器VI的简单使用
- Hadoop经典书籍
- stm32 之iic
- Delphi常用内存管理函数
- 技术人员的未来:做技术还是做管理?
- 跳马问题-回溯法
- SQL去除重复记录(oracle)
- tomcat apache 与 apache http server的关系
- Lucence3.0的Analyzer备忘
- 实例讲解.NET多线程执行函数
- Java变量自动初始化
- 面试10个问题