指针
指针
指针类型声明
使用 “^” 符号来表示指针:
1 | type |
指针赋值
采用 “@” 取地址运算符,或者 Addr() 内置函数取得变量的地址,可以赋值给指针变量:
1 | var |
无类型指针
无类型指针为 Pointer,它不指向任何类型,pointer 需要使用时必须类型转换为其它类型的指针。
指针变量的使用
使用指针变量来访问指向的内存,需要用到 “^” 解指针操作符:
1 | var |
New 和 Dispose
New()内置函数,用于在堆中分配指定类型的内存,然后把地址赋值给指针。Dispose()内置函数,用于销毁回收New()分配的内存,指针会被设置为 nil
1 | var |
GetMem 和 FreeMem
GetMem()函数,用于在堆中分配指定大小的内存,然后把地址赋值给指针。FreeMem()函数,用于销毁回收GetMem()分配的内存,指针会被设置为 nil
1 | var |
AllocMem
AllocMem 分配内存的形式跟 GetMem() 差不多,只需要传递字节大小,会通过返回值的方式返回指针:
AllocMem 会将分配到的内存全部初始化为 0。
AllocMem 分配到的内存同样使用 FreeMem() 来释放
1 | var |
ReallocMem
对 GetMem 或 AllocMem 分配得到空间的已有的指针,重新分配指定大小空间
1 | ReallocMem(ptr, ReSize); |
StrNew 和 StrDispose
分配字符串空间,并复制字符串到缓冲区,返回给 PChar
1 | var ptr1 : PChar; |