pEnc:array[1..CHANNEL_COUNT] of PChar; //声名在一个函数中
GetMem( pEnc[1], 100 );但出了函数pEnc[1]就为空了,为什么呢?

解决方案 »

  1.   

    pEnc是局部變量, 被释放了
      

  2.   

    不是,这个是类成员变量,绝不会释放,同样是一个pAcl:PChar;就没没问题:(
      

  3.   

    unit Main;
    type
      TfrmMain = class(TForm)
    private
        pEnc:array[1..CHANNEL_COUNT] of PChar;
    end;procedure TfrmMain.StartChannel();
    begin
        GetMem(  pEnc[1],  100  );  
    end;
    procedure TfrmMain.TimerTimer(Sender: TObject);
    begin
        DataCast.Send( pEnc[1], 100 );     //这里就为空了,不知道为什么?
    end;
    简化了一下,要不太多了:(
      

  4.   

    对字符串类型的东西,调用的时候一般是做COPY,不会对原来的做任何操作!如果想改变的话,可以采用var方式调用,也就是引用调用!