还有
用free还使用和new()对应的?

解决方案 »

  1.   

    在Delphi中一般用TObject.Create的。
    new在Delphi中只是分配内存,有不少事它都没有做,一般用于一些为一些动态的数组或指针分配内存。
      

  2.   

    一般获得内存就用GETMEMORY就是
    标准组件就是用.CREATE方法来创建
      

  3.   

    我向大家可能没明白我的意思.
    我是说c++里面的new 操作符产生的变量是分布的堆内存.
    如果在c++不部用new,那么产生的变量算是局部变量(如果不是全局变量).在delphi里面又没有这样的区别呢?
    procedure my();
    var
     fm:tform2;
    begin
     fm:=form.create(self);
     fm.showmodal;
     fm.free;
    end;
    ///////
    bcb里面是:
    void my()
    {
    TForm2 *fm=new TForm2(this);
    fm->ShowModal();
    delete fm;
    }
    bcb里面的fm分配的是堆内存,但是delphi使用的是堆内存还是编译时预定的局部变量区呢?
      

  4.   

    可以,但是只针对 Object 对象
      

  5.   

    to:arrow_gx()如果delphi要分配堆内存是不是一定要用指针?
    否则delphi的局部变量不都在堆内存里面了?