我有一段程序,不知道内存该怎么释放?
下面是我的类型声明:
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,还有需不需要释放,如果按照现在的做法他所占用的内存是不是释放不掉,该怎么修改?谢谢各位了;
解决方案 »
- TADOQuery, TADOTable:几个问题
- 关于assign的应用,求助
- insert一次,怎么在dbgrid中会增加两条记录?(在线等待)
- 散分!
- 如何监控打印机状态,当打印时把打印内容保存到文件?
- 怎样定义 Delphi Query 的刷新时间?
- ASP
- 如何发布有用到sql的delphi应用程序
- A Call to an OS function failed,在调用Modal form后,关闭窗体时发生?
- 我要将数据库中的表导出成txt文件或excel文件,我在sql 2000中用了以下两中方法都不奏效,请问如何操作?
- 谁能告诉我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)