关于blockread(70分)

  • 主题发起人 主题发起人 jxh
  • 开始时间 开始时间
J

jxh

Unregistered / Unconfirmed
GUEST, unregistred user!
我用动态数组和blockread读文件,读出来的都对,但最后无法将动态数组释放!
webcache:array of TWebCache;


SetLength(webcache,1000);
AssignFile(fp1,config.datapath+'webcache.dat')
try
Reset(fp1,1);
BlockRead(fp1,webcache[0],FileSize(fp1));
finally
fileclose(fp1);
end;
webcache:=nil;


debug在webcache:=nil;时报错
 
Finalize(webcache)行不行?
 
我试了
Finalize(webcache)不行。
 
另外SetLength(webcache,1000);webcache的空间足够大,内存没有溢出,是不是delphi的bug??????
 
不好意思,SetLength(webcache,1000);webcache的空间是否足够大,内存有没有溢出,是不是delphi的bug??????
 
你是要释放动态数组还是要释放数组里面的对象?
没有看到你初始化对象实例?
 
webcache只是一个一般的结构!!!!!
只要不从文件中读入就可以释放,我试了!
主程序什么也没做,只做了这一件事!内存不会溢出!!!
大虾们帮帮忙吧!!
 
把webcache:=nil;放在fileclose(fp1);之前看看.
 
没有创建需要释放吗?
而且你的调用方法本来就不需要释放
 
试试
SetLength(webcache,0),帮助里说0字长的动态数组为nil
 
>webcache:array of TWebCache;

>SetLength(webcache,1000);

> BlockRead(fp1,webcache[0],FileSize(fp1));

procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]);

webcache[0]指向什么?
 
近期结束
 
多人接受答案了。
 
回答的太烂了,根本没有解绝问题!!!!!!!!!!!!!!!!!!!!!!!
 
后退
顶部