我收到了一个运行时 217 错误,我已经追踪到我的一个单元的最终确定部分。这是代码:
finalization
begin
for I:= 0 to CacheList.Count - 1 do
begin
tempRecord := CacheList.Items[I];
for k := 0 to length(tempRecord.details) - 1 do
begin
tempRecord.Details[k].free;
end;
tempRecord.free;
end;
CacheList.Free;
end;
和 tempRecord 是:
Record = class
Details : array of CachedDetails;
key : string;
end;
CachedDetails = class
EDate : TDateTime;
A : Real;
B : Real;
C : Real;
end;
即使我收到错误,该过程也完全成功。如果我简单地注释掉整个终结,错误就会消失,但我显然不想泄漏内存。我是否不正确地调用免费?