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

  • 相关阅读:
    IOS UIPickView+sqlite 选择中国所有城市案例
    IOS Sqlite用户界面增删改查案例
    IOS sqlite数据库增删改查
    IOS基于新浪微博开放平台微博APP
    ASIHTTPRequest 对GET POST 请求简单封装
    装饰器模式
    策略模式
    网站加入QQ聊天链接
    Spring AOP详解
    Maven搭建多模块企业级项目
  • 原文地址:https://www.cnblogs.com/minghang/p/5615480.html
Copyright © 2011-2022 走看看