高分求助100,关于结构指针使用出问题,急需解决!

adragon007 2003-12-12 03:02:47
__time = packed Record
UploadYear : short; // char[2]
UploadMonth : Byte;
UploadDay : Byte;
UploadHour : Byte;
UploadMinute : Byte;
UploadSecond : Byte;
PrintHour : Byte;
PrintMinute : Byte;
PrintSecond : Byte;
end;

Send = ^TSendData;
TSendData = packed Record
flowNr : integer; // 帐单流水号
Seller : array [0..7] of char; //员工名称
time : __time;
desk : Array [0..29] of char; //台号名称
peopleNr : short; //每桌人数
dishNr : short; //菜品数量
dishUnit : Array [0..3] of char; // 菜品数量单位
dishName : Array [0..27] of char; // 菜品名称
dishsort : Array [0..9] of char; // 类别
append : Array [0..99] of char; // 附加项目
barCodeNr : integer; //条码
end;



某函数中:
var
PSend :Send;


PSend.flowNr := 1998;
sName := 'LiMing';
for iTemp := 0 to 5 do
begin
PSend.Seller[i] := sName[i+1];
end;

PSend.time.UploadYear := 2003;
PSend.time.UploadMonth := 12;
PSend.time.UploadDay := 28;
PSend.time.UploadHour := 15;
PSend.time.UploadMinute := 30;
PSend.time.UploadSecond := 50;
PSend.time.PrintHour := 12;
PSend.time.PrintMinute := 0;
PSend.time.PrintSecond := 0;
PSend.desk := '台号名称';
PSend.peopleNr := 8;
PSend.dishNr := 20;
PSend.dishUnit := 'zhuo';
PSend.dishName := '菜品名称';
PSend.dishsort := '类别';
PSend.append := '附加项目';
PSend.barCodeNr := 1;
sIpAddr := edIP.Text;
SendFunc(PSend,pchar(sIpAddr),3000);



结果表示为PSend不能赋值,是不是指针没有分配内存,如何解决????
...全文
10 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
flyinwuhan 2003-12-12
必须NEW
必须NEW
必须NEW
必须NEW
必须NEW
因为Send = ^TSendData是指针。
  • 打赏
  • 举报
回复
cll007 2003-12-12
var
PSend :Send;
begin
GetMem(PSend ,sizeof(TSendData));
PSend ^.Seller:='hello';
...
...
Caption:=PSend ^.Name;
FreeMem(PSend,sizeof(TSendData))
  • 打赏
  • 举报
回复
zhangnan623 2003-12-12
必须NEW
  • 打赏
  • 举报
回复
Mrkang 2003-12-12
没创建啊
  • 打赏
  • 举报
回复
adragon007 2003-12-12
ok,我试试
  • 打赏
  • 举报
回复
fengyvn 2003-12-12
不NEW也可以,但要指向一个已经存在的实体.
如果没有,还是老老实实地NEW吧.
  • 打赏
  • 举报
回复
adragon007 2003-12-12
是不是一定要new 下才行?
  • 打赏
  • 举报
回复
wolf2005 2003-12-12
New(PSend)
..........
Dispose(PSend);//important!!!
  • 打赏
  • 举报
回复
tlihui 2003-12-12
New(PSend)

PSend^.flowNr := 1998;
  • 打赏
  • 举报
回复
adragon007 2003-12-12
怎么每人接啊?
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

5066

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2003-12-12 03:02
社区公告
暂无公告