zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python之标示符和关键字
    Python之变量以及类型
    python之注释的分类
    Python的环境的搭建
    Python之第一个helloworld的代码
    Linux_ubuntu-命令系统管理
    Linux_ubuntu命令-用户、权限管理
    Linux-ubuntu命令-文件、磁盘管理
    Linux_Ubuntu命令概述
    Linux-Ubuntu文件权限
  • 原文地址:https://www.cnblogs.com/minghang/p/5615480.html
Copyright © 2011-2022 走看看