我有一段程序,不知道内存该怎么释放?
下面是我的类型声明:
PRuninfo = ^TRuninfo;
TRuninfo = Record
Name:string;
ID :string;
end;
//下面是我声明的两个PRunInfo类型的量;
RunInfo1, RunInfo2: PRunInfo;
//下面是我进行的初始化;
RunInfo1 := ATrainList.Items[FirstNode];
RunInfo2 := ATrainList.Items[SecondNode];
我的问题就在上面的这两行,我不知道RunInfo1, RunInfo2需不需要create,还有需不需要释放,如果按照现在的做法他所占用的内存是不是释放不掉,该怎么修改?谢谢各位了;
下面是我的类型声明:
PRuninfo = ^TRuninfo;
TRuninfo = Record
Name:string;
ID :string;
end;
//下面是我声明的两个PRunInfo类型的量;
RunInfo1, RunInfo2: PRunInfo;
//下面是我进行的初始化;
RunInfo1 := ATrainList.Items[FirstNode];
RunInfo2 := ATrainList.Items[SecondNode];
我的问题就在上面的这两行,我不知道RunInfo1, RunInfo2需不需要create,还有需不需要释放,如果按照现在的做法他所占用的内存是不是释放不掉,该怎么修改?谢谢各位了;
解决方案 »
- 求一个sql语句的问题!!加个日期 限制
- ▲▲▲▲▲如何用FormatDateTime函数取得当前日期的时分秒???▲▲▲▲▲
- 关于TDBEdit更新的问题?
- dbExpress(TSimpleDataSet) + MS SQL Server 2000 奇怪的问题('Operation not applicable')
- 请教: $define 跨单元有效
- 4路USB摄像头视频录像系统
- 怎样实现在连接数据库时启动一个FORM,当连接后关闭FORM启动主画面?
- 如何锁定键盘、鼠标、硬盘?
- 请教Tstring的AddObject方法的使用?
- 关于Delphi和Word的问题。
- 谁能告诉我oracle 9能下载地址,谢谢!
- 表格显示问题,高手请进!!急急!!!!!!!!!!!
RunInfo1:=TRunInfo.Create;
RunInfo2:=TRunInfo.Create;
然后附值语名
用完后可以手动释放
RunInfo1.free;也可以由程序自己释放
内存当然要释放,关键看你的指针变量是如何创建的。Delphi中,New()与Dispose()是对应的。getMem()与FreeMem()是对应的。
TRuninfo是你定义的一个数据记录结构,不是CLASS,因此不能用Create.
如:///向列表中增加一个指针元素
var
p1:PRuninfo;
begin
New(p1);
//或getMem(P1,sizeof(P1));
ATrainList.Add(P1);
end;
////
var
P2: PRuninfo;
begin
P2 := ATrainList.Items[0];
ShowMessage(P2^.Name+P2^.ID);
Dispose(P2);//此处与上面的New()对应
//FreeMem(P2); //此处与GetMem()对应end;
Chayezi(yes) (6)
Spqk005(舍甫琴柯)(7)
IwantFlay(我很爱她!!!!!!!!!!)(15)
karach(卡车) (7)
kkk2000(肥牛)(15)