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

从delphi7 到 Delphi2010 ---(二) 内存管理

2011-09-29 15:33 393 查看
delphi 2010 的内存管理 对 delphi 7 的内存管理进行了改善.
下面这段代码 在两个编译器下均能正常运行, 但是我们发现 , delphi 2010 可以申请更多的内存.
---- 测试环境 : windows 7.0

procedure TForm1.Button3Click(Sender: TObject);

const nm = 1024*1024*500;

   Type

       TAA = packed array[1..nm] of byte;

       PAA = ^TAA;

   var A:array[1..4] of   PAA;

       i,n:integer;

begin

    for I := 1 to 4 do

    begin

        try

          A[i]:=nil;

          getmem(   A[i] , sizeof( TAA));

        except

           on E:Exception do

              memo1.Lines.Add( e.Message) ;
        end;

          memo1.Lines.Add( format('%p',[A[i]])) ;

   end;
   showmessage('OK');
    for I := 1 to 4 do

    begin

       if (A[i]<>nil) then

       begin

         freemem( A[i] );

       end;

    end;
end;

delphi 7 编译的程序之运行结果 :

10090004

Out of memory

00000000

Out of memory

00000000

Out of memory

00000000

//   delphi 2010 编译的程序之运行结果 :
40D10010

21900010

Out of memory

00000000

Out of memory

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