buf:pchar;//该变量使用前要分配内存getmem(buf,128);
使用完后要释放freemem(buf,128);

解决方案 »

  1.   

    动态数组使用前一定要SetLength()!!!
    因动态数组属自动内存回收管理,我认为可弃getmem(),freemem.
      

  2.   

    zhoutler(周进宝)是正确的,只要使用了SetLength就行了
    不过最好在结束时释放
    SetLength(Buffer, 0)
      

  3.   

    你试试这样呢:
    CopyMemory(@Buffer[0],buf,len);
      

  4.   

    指针没有移动,SetLength在98下也没有bug,你负值前使用FillChar清一下先
      

  5.   

    大宋你的方法不行!
    在freemem()时出现!
    PChar 类型直接用也没有提示出错?
    如: 
    var 
      buf:pchar;buf := 'fdsafdsa';在编绎时也没有提示出错。
    为什么要用 GetMem 分配内存。