在查找 Delphi XE 程序高度间歇性的内存损坏时,我发现一个类构造函数在初始化了类中的一些字段后才调用 inherited。我认为这些初始化是在构造函数编写之后添加的,并且不小心放错了位置。我已经更正为先调用 inherited。这个类的方法几乎总是会出现内存损坏的异常。
问题:这个错误是否可能导致间歇性的内存损坏?在跟踪代码时,似乎并不是这样,但我真的希望这个修复可以解决间歇性问题。修复问题后一段时间不再出现并不能证明它已经消失。
一些代码:
问题:这个错误是否可能导致间歇性的内存损坏?在跟踪代码时,似乎并不是这样,但我真的希望这个修复可以解决间歇性问题。修复问题后一段时间不再出现并不能证明它已经消失。
一些代码:
Tmyclass = class
ctype : integer;
ts : tstringlist;
th : thandle;
public
Constructor Create;
Destructor Destroy; override;
...
end;
Constructor Tmyclass.Create;
begin
ctype := 3;
doinit;
inherited;
end;