您的位置:首页 > 编程语言 > Delphi

Delphi结构中使用String时遇到的内存泄露问题

2011-12-23 10:58 344 查看
先定义一个结构:

TUserInfo = record

UserID: Integer; // 用户编号

UserName: string; // 用户名

end;

然后编写如下代码:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

User.UserName := StringOfChar('A', RandomRange(16*1024, 64*1024));

FillChar(User, SizeOf(User), 0);

end;

然后开启设置Timer间隔为20ms, 开启任务管理器就会发现内存暴涨,很显然结构中UserName使用的内存未被正确释放。

改成下面的代码就不会出现上述情况:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

User.UserName := StringOfChar('A', RandomRange(16*1024, 64*1024));

User.UserName := '';

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: