zoukankan      html  css  js  c++  java
  • 学习 TList 类的实现[3]

    在 Delphi 中, 几乎所有的类型都有对应的指针类型, 譬如: Char PChar Word PWORD Double PDouble TPoint PPoint 甚至一种类型对应这着几种指针类型, 譬如: Integer PInteger PINT WideChar PWideChar PWChar 即使它没有定义, 我也可以直接使用一个类型的指针, 譬如声明一个整数的指针变量: var px: ^Integer; 也可以先自定义指针类型, 再使用, 譬如: type MyIntPointer = ^Integer; var px: MyIntPointer; 看来声明指针类型还是挺方便, 但使用有点麻烦, 需要先申请内存!我们可以用以下三种方法, 为指针(譬如是一个 Double 类型的指针)去申请需要的内存:
    var
      pd: PDouble;
    begin
      New(pd);
      pd^ := 99.9;
      ShowMessage(FloatToStr(pd^)); {99.9}
      Dispose(pd);
    end;

    var
      pd: PDouble;
    begin
      GetMem(pd, SizeOf(Double));
      pd^ := 99.9;
      ShowMessage(FloatToStr(pd^)); {99.9}
      FreeMem(pd);
    end;

    const
      size = SizeOf(Double);
    var
      pd: PDouble;
    begin
      pd := AllocMem(size);
      pd^ := 99.9;
      ShowMessageFmt('%p -> %g', [pd, pd^]); { 00AD0EC0 -> 99.9 }
    
      ReallocMem(pd, 2 * size);
      ShowMessageFmt('%p -> %g', [pd, pd^]); { 00AF5030 -> 99.9 }
    
      pd := ReallocMemory(pd, 100 * size);
      ShowMessageFmt('%p -> %g', [pd, pd^]); { 00A6B090 -> 99.9 }
    
      FreeMem(pd);
    end;

  • 相关阅读:
    1351. 统计有序矩阵中的负数
    剑指 Offer 56
    39. 组合总和
    1619. 删除某些元素后的数组均值
    1380. 矩阵中的幸运数
    216. 组合总和 III
    面试题 08.03. 魔术索引
    1518. 换酒问题
    Xcode多进程调试:WKWebView
    Xcode编译WebKit
  • 原文地址:https://www.cnblogs.com/shijiaoyun/p/3844505.html
Copyright © 2011-2022 走看看