关于释放指针的问题,有点怪,

肥仔胧 CSDN会员 肥仔胧 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
PFuncInfo=^TFuncInfo
TFuncInfo=record
DispName: string;
Level: Integer;
end;


var
mFuncList: TStringList;//全局变量

代码大概如下:
procedure Init;
var
FuncInfo: PFuncInfo;
i: Integer;
begin
for i := 0 to sTempList.Count - 1 do
begin
New(FuncInfo);
with FuncInfo^ do
begin
DispName := sTempList.Strings[i];
Level := i;
mFuncList.AddObject(DispName, TObject(@FuncInfo));
end;
end;
end;


然后我在释放的时候如下:
procedure FreeFuncInfo;
var
i: Integer;
FuncInfo: PFuncInfo;
begin
if mFuncList <> nil then
begin
for i := 0 to mFuncList.Count - 1 do
begin
FuncInfo := PFuncInfo(mFuncList.Objects[i]);
if FuncInfo <> nil then
Dispose(FuncInfo);//此行出错,请教原因
end;
end;
end;

以上到底是怎么错了呢?谢谢!
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部