delphi 精要-读书笔记(内存分配释放)
2006-06-14 22:05
309 查看
1.内存分为三个区域:全局变量区,栈区,堆区
全局变量区:专门存放全局变量
栈区:分配在栈上的变量可被栈管理器自动释放
堆区:堆上的变量内存必须人工去释放
2.指针类变量
指针类的变量在声明为全局变量时被初始化为空值,在声明为局部变量时则初始化为一个随机数,对于指针类型一般
要使用一些代码来完成内存分配
3.动态分配内存的函数和过程
procedure GetMem(Var P: Pointer; Size: Integer);
分配大小为Size字节的内存块,并让P指向它
procedure AllocMem(Size: Cardinal):Pointer;
分配大小为Size字节的内存块并始初化为零,并返回地址指针
procedure ReallocMem(Var P: Pointer; Size: Integer);
在途中更改先前用GetMem或者AllocMem分配的内存大小
procedure FreeMem(Var P: Pointer);
使用GetMem和AllocMem分配的内存都应该用FreeMem释放
Procedure New(Var P: Pointer);
用New分配的内存大小由参数P的数据类型确定,因此,不要使用它给无类型指针变量分配内存.
Procedure Dispose(Var P: Pointer);
释放该内存块使用dispose
全局变量区:专门存放全局变量
栈区:分配在栈上的变量可被栈管理器自动释放
堆区:堆上的变量内存必须人工去释放
2.指针类变量
指针类的变量在声明为全局变量时被初始化为空值,在声明为局部变量时则初始化为一个随机数,对于指针类型一般
要使用一些代码来完成内存分配
3.动态分配内存的函数和过程
procedure GetMem(Var P: Pointer; Size: Integer);
分配大小为Size字节的内存块,并让P指向它
procedure AllocMem(Size: Cardinal):Pointer;
分配大小为Size字节的内存块并始初化为零,并返回地址指针
procedure ReallocMem(Var P: Pointer; Size: Integer);
在途中更改先前用GetMem或者AllocMem分配的内存大小
procedure FreeMem(Var P: Pointer);
使用GetMem和AllocMem分配的内存都应该用FreeMem释放
Procedure New(Var P: Pointer);
用New分配的内存大小由参数P的数据类型确定,因此,不要使用它给无类型指针变量分配内存.
Procedure Dispose(Var P: Pointer);
释放该内存块使用dispose
相关文章推荐
- delphi 精要-读书笔记(内存分配释放)
- delphi 精要-读书笔记(内存分配释放)
- delphi 精要-读书笔记(内存分配释放)
- Delphi中内存的动态分配与释放
- Delphi 给结构体指针分配内存,用new(p),释放用dispose(p)
- delphi变量内存分配与释放
- Delphi分配或释放内存失败的原因
- delphi变量内存分配与释放
- delphi 指针的内存分配和释放
- Delphi的内存分配和释放
- Delphi的内存分配和释放
- [Delphi]内存分配和释放 内存操作函数(4): 清空与填充内存
- delphi.memory.分配及释放---New/Dispose, GetMem/FreeMem及其它函数的区别与相同,内存分配函数
- 关于结构体内存分配及释放
- (转)!!频繁分配释放内存导致的性能问题的分析 --(附)malloc分配原理浅析 mmap关注焦点 如何优化分配内存
- C语言free()函数:释放动态分配的内存空间
- C中的动态内存分配和释放(free)
- C/C++动态分配与释放内存的区别详细解析
- Linux中的内存分配和释放之free_area_init_node()函数分析
- 内存动态分配与释放