X
xhuangbin
Unregistered / Unconfirmed
GUEST, unregistred user!
var
i:integer;
hashtable:THashedStringList;
myarray:array of integer;
begin
hashtable:=THashedStringList.create;
for i:=20000000 to 30000000 do
begin
if i mod 1000=0 then
begin
caption:=inttostr(i);
application.ProcessMessages;
end;
hashtable.Add(inttostr(i));
setlength(myarray,i);
myarray[i-1]:=i;
end;
hashtable.Clear;
hashtable.Free;
setlength(myarray,0);
myarray:=nil;
application.MessageBox('完成!','提示');
end;
我的机器是1G的内存,但该代码才执行几秒,就出现out of memory错误,请教高手,动态数组的内存分配是否必须是连续的内存空间,什么情况下会出现EoutofMemory异常呢。
i:integer;
hashtable:THashedStringList;
myarray:array of integer;
begin
hashtable:=THashedStringList.create;
for i:=20000000 to 30000000 do
begin
if i mod 1000=0 then
begin
caption:=inttostr(i);
application.ProcessMessages;
end;
hashtable.Add(inttostr(i));
setlength(myarray,i);
myarray[i-1]:=i;
end;
hashtable.Clear;
hashtable.Free;
setlength(myarray,0);
myarray:=nil;
application.MessageBox('完成!','提示');
end;
我的机器是1G的内存,但该代码才执行几秒,就出现out of memory错误,请教高手,动态数组的内存分配是否必须是连续的内存空间,什么情况下会出现EoutofMemory异常呢。