zoukankan      html  css  js  c++  java
  • Free pascal 指针处理

    TList.Add() 参数是一个 Pointer, 下面是一个如何将 Integer 值处理为 Pointer的. 

    copy from :    https://forum.lazarus.freepascal.org/index.php?topic=22905.0

    type
      pinteger=^integer;
    var
      aList:TList;
      pi:pinteger;
      i:integer;
    begin
      aList:=TList.Create;
    
      for i:=0 to 9 do
      begin
        New(pi);
        pi^:=i;
        aList.Add(pi);
      end;
    
      for i:=0 to aList.Count-1 do
        writeln(pinteger(aList[i])^);
    
      //take care about self created items
      for i:=aList.Count-1 downto 0 do
        Dispose(pinteger(aList[i]));
    
      aList.Clear;
      aList.Free;
    end.

    使用自定义对象, 比直接使用Pointer更简单.

    type
      TTest=class
        Value:integer;
      end;
    
    var
      aList:TList;
      aTest:TTest;
      i:integer;
    begin
      aList:=TList.Create;
    
      for i:=0 to 9 do
      begin
        aTest:=TTest.Create;
        aTest.Value:=i;
        aList.Add(aTest);
      end;
    
      for i:=0 to aList.Count-1 do
        writeln(TTest(aList[i]).Value);
    
      //take care about self created items
      for i:=aList.Count-1 downto 0 do
        TTest(aList[i]).Free;
    
      aList.Clear;
      aList.Free;
    end.
  • 相关阅读:
    回老家
    防疫针
    平安夜
    虎威威
    圣诞联欢会
    小老虎飞船
    电子积木
    打印
    周日大悦城
    又一年毕业季
  • 原文地址:https://www.cnblogs.com/harrychinese/p/13923205.html
Copyright © 2011-2022 走看看