Free pascal 指针处理
发布时间:2022-10-13 09:25:46 333
相关标签: # php
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://blog.51cto.com/u_15585381/5277497
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报