如果是char的话,你用string不就结了。

解决方案 »

  1.   

    你那么痛恨#0吗?
    用SetLength的话,没有#0也没关系。不过如果越界那就是你自己的责任了。
      

  2.   

    这种越界? 到底可能的原因是什么呢? Setlength最大分配空间是多少阿? 如果第一次分配255
    , 第二次再分配255可以吗, 即255+255?
      

  3.   

    string你一次给个2G空间没有问题,至于先255,再加255,最好你先做个实验,看看里面的内容是否有损失?
      

  4.   

    我的测试很简单, Buffer中只有一个字符'a'SetLength(MyDynamicArray, 1);
    StrlCopy(PChar(Addr(MyDynamicArray)), PChar(Addr(Buffer)), 1);
    SetLength(MyDynamicArray, 2);   //错误出现在这里
    StrlCopy(PChar(Addr(MyDynamicArray[1])), PChar(Addr(Buffer)), 1);
      

  5.   

    StrlCopy(PChar(Addr(MyDynamicArray)), PChar(Addr(Buffer)), 1);
    此句有问题。
    应该是:
    StrlCopy(PChar(MyDynamicArray), PChar(Buffer), 1);