假设有如下类型
TRec=record
  strName:string;
  intCnt:integer;
end;var
 aRec,bRec:TRec;执行以下操作
bRec:=aRec;之后对bRec的任何改变都会使到aRec有同样的变化, 请教有没办法建立一个aRec的副本,对其进行操作,但又不影响原来的aRec呢?当我想更新aRec的时候再将这个副本赋值回aRec
先谢谢了~~

解决方案 »

  1.   

    我试了一下,不会出现你说的情况;而且bRec:=aRec不是指针操作,只是复制aRec的值到bRec。
    不知道你是怎么做的
      

  2.   

    不好意思,是我给的例子不对
    应该是:
    TRec=record
     aTest:array of string;
    end;var
     aRec,bRec:TRec;aRec.aTest[0]:='a';
    bRec:=aRec;
    bRec.aTest[0]:='b';
    此时aRec.aText[0] 也变成了b
      

  3.   

    44aRec.aTest[0]:='a';
    bRec:=copy(aRec);
    bRec.aTest[0]:='b';
      

  4.   

    bRec:=copy(aRec)编译的时候报:Error Incompatible types
      

  5.   

    如果改成
    bRec.aTest:=copy(aRec.aTest)
    就没问题了,而且修改bRec后,aRec的也没被改变但如果TRec是一个有很多动态数组,那么就是说要一个一个数组对应的copy了咯?
      

  6.   

    之前看错了,正确的是bRec.aTest:=copy(aRec.aTest)如果你每个数组都独立的话,当然要用COPY了。或者你搞清楚指针的概念,问题就清楚了,动态数组用:=传递时只传指针
      

  7.   

    多谢 Rail100, 终于明白是啥问题了