Delphi 关于结构指针的传递问题

本文探讨了一个关于结构指针的问题:定义了一个记录类型TWeighInfo并使用指针TPWeighInfo来指向它。通过函数GetWieghInfo返回结构体的地址,但在调用端尝试访问该结构体的字符串成员时发现其为空。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天遇到一个关于结构指针的问题:

  type
  TWeighInfo = record
      RecNO : Integer ;
      BarCode : string ;
      MatCode : string ;
      Weigh : Double ;
      Qty : Double ;     //bom 的重量
      DifQty : Double ;  //差异
  end;
   TPWeighInfo = ^TWeighInfo ;

     Function  GetWieghInfo :TPWeighInfo               --返回TWeighInfo    没有问题  ,  返回TPWeighInfo        引用类型的值为空。

VAR

   WeighInfo : TWeighInfo ;

BEGIN

                 WITH WeighInfo  DO

                BEGIN

                         RecNO :=1 ;

                        BarCode :='abc000001' ;

                        MatCode := 'xxxxxxxx' ;

                        Qty := 0;

                END;

    Result := @WeighInfo  ;

   --在函数体内。  Result 的 Barcode的值没有问题。  出函数为空值。

END; 

-------------接收端。

Procedure ReceiveData ;

var

  PWeighInfo  :TPWeighInfo ;

begin

PWeighInfo   := GetWieghInfo ;

  Showmesage( PWeighInfo ^.BarCode )  ;  ---等于空值。

Showmesage( PWeighInfo ^.RecNO.Tostring )  ;  ---等于1。

end;

高手帮忙解答一下。 这个是什么问题?   为什么记录类型的指针 出函数后引用类型为空了呢???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值