Delphi内存与指针学习摘要

(1)StrAlloc StrDispose
给字符指针(PChar、PWideChar、PAnsiChar)分配内存, 最佳选择是: StrAlloc.(注: 也可以用array[0..Max_Path] of Char)
StrAlloc 分配的内存, 用StrDispose 释放, 用 StrBufSize 获取大小.
(2)New Dispose
New 是给已知大小的指针分配内存 释放: Dispose;
(3)GetMem FreeMem
GetMem 主要是给无类型指针分配内存 释放: FreeMem;
(4)AllocMem
AllocMem 分配内存后会同时初始化(为空) 释放: FreeMem.
(5)ReallocMem
ReallocMem是在已分配的内存的基础上重新分配内存.
(6)MoveMemory、CopyMemory、 Move
MoveMemory、CopyMemory 的功能类似, 都是复制内存, 都是调用 Move 过程;
MoveMemory、CopyMemory 操作指针; Move 操作实体.
(7)跨进程的内存分配
Delphi 为我们提供了三个方便的函数:
GlobalAllocPtr   {简化自 API 的 GlobalAlloc}
GlobalReAllocPtr {简化自 API 的 GlobalReAlloc}
GlobalFreePtr    {简化自 API 的 GlobalFree}
读写本程序以外的数据时可以使用它们, 很方便, 譬如:
p := GlobalAllocPtr(0, Len);      {分配}
p := GlobalReAllocPtr(p, Len, 0); {重分配}
GlobalFreePtr(p);                 {释放}
注意 GlobalAllocPtr 的第一个参数和 GlobalReAllocPtr 的最后一个参数, 上面给的都是 0;
这两个参数的意义是一样的, 规范一点应该写成 GMEM_FIXED (表示分配固定内存), 常用的参数还有:
GMEM_MOVEABLE {分配可移动内存}
GMEM_ZEROINIT {同时清空内存}
GHND          {分配可移动内存同时清空}
GPTR          {分配固定内存同时清空}

更详细参考:万一博客http://www.cnblogs.com/del/category/162410.html

转载于:https://www.cnblogs.com/minghang/p/5615480.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值