大哥:
   我的代码是:
    var
test:Pchar;
begin
 new(test);
 test:='test';
 decode(test,4);
 decode(test,4);
 edit1.Text:=test;
 dispose(test);
但调试时dispose为何出错?

解决方案 »

  1.   

    var
    test:^Pchar;
    begin
     new(test);
     test^:='test';
     decode(test^,4);
     decode(test^,4);
     edit1.Text:=test^;
     dispose(test);
    end;
      

  2.   

    只有用New分配的内存空间,才能用Dispose
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      tmp:PChar;
    begin
      tmp:='test';//指针指向了字符串test,所以不需要分配内存;
      getmem(tmp,255);
      strcopy(tmp,'test');
      freemem(tmp);
    end;
      

  4.   

    但写成这样好象不行,他说类型不匹配
    procedure TForm1.d_estring(source:string);
    var
    tmp:Pchar;
    begin
      getmem(tmp,255);
      strcopy(tmp,source);
      decode(tmp,length(tmp));
      freemem(tmp);
    end;