今天遇到一个关于结构指针的问题:
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;
高手帮忙解答一下。 这个是什么问题? 为什么记录类型的指针 出函数后引用类型为空了呢???
本文探讨了一个关于结构指针的问题:定义了一个记录类型TWeighInfo并使用指针TPWeighInfo来指向它。通过函数GetWieghInfo返回结构体的地址,但在调用端尝试访问该结构体的字符串成员时发现其为空。
1329

被折叠的 条评论
为什么被折叠?



