var ere:Record ..end;ere.***:=;
之后怎么让ere为“空”?

解决方案 »

  1.   

    FillChar(ere, SizeOf(ere), #0);————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    Record 是实在的一个变量,不存在释放,就象 integer, byte 一样。
      

  3.   

    拿个例子来做说明吧。typeaa = record
        nI1: Integer;
        nI2: Integer;
    end;Paa = ^aa;
    procedure P1();
    var
      aa a1;
    beginend;    这个时候你的a1 是建立在过程的堆栈里面的,不需要显式的释放。离开这个过程的作用域,这个结构会自动被释放掉。    假如你需要自己控制何时释放,可以这么写:procedure P1();
    var
      Paa pA1; // 注意这里声明的是一个指针,不是结构体
    begin
      GetMem(pA1, SizeOf(aa)); // 申请一个结构体的内存空间,然后把pA1 指向这个空间。....  FreeMem(pA1); // 释放所申请的空间。
    end;假如你懂一点C 语言的话,可以把这个做法和malloc 和 free 做内存管理做比较,一样的。
      

  4.   

    record 和 class 的内存管理不一样的
    pascal中所有的class变量都是引用,所以在使用完后要释放
    但是record不是引用,所有使用方法和其他的基本类型都是一样的