指针的赋值问题
type
Tdata=record//程序消息传送数据类型
fromhost:string;
tohost:string;
xiaoxi:string;
mingling:integer;
end;
PPTdata=^Tdata;
type
Thost=record //服务端记录登陆的客户端
addr:string;//socket的地址
hdle:Thandle;//socket的句柄
hostname:string;//客户端主机名
end;
问题出现在我在给PPTdata=^Tdata;的指针对象赋值的时候,只要一进行那步操作就报错
就象
pdata^.mingling:=serversend;
pdata^.xiaoxi:='服务器公告:'+sEdit1.Text;
只要一进行这步操作就出现问题,我都不知道问题出现在什么地方,请个问路过的大侠指点一下。
我也看过delphi5的开发人员指南,应该赋值是没错的,但是。。。。。。。。。。
本人都是自学的,基本功不是很好,请大家见量。。。。。。
2楼: 比较以下两行:
PPTdata=^Tdata;
pdata^.mingling:=serversend;
pdata是什么?
3楼: 把
Tdata=record//程序消息传送数据类型
fromhost:string;
tohost:string;
xiaoxi:string;
mingling:integer;
end;
PPTdata=^Tdata; 字串4
这两段位置换一下。
4楼: pdata是指针,要先申请内存!
如果这样:Data: TData;则不需要申请内存,直接这样赋值:
Data.mingling:=serversend;
5楼: pdata:=new(PPTdata)后再操作
6楼: PPTdata=^Tdata;
Tdata=PACKED record//程序消息传送数据类型
fromhost:string[20];
tohost:string[30];
xiaoxi:string[120];
mingling:integer;
end;
string只是一个指向字符串的指针
var a:pdata
begin
now(a);
a.fromhost:='';
end;如管家婆未能找到存储过程
7楼: 不懂指针的去死!!
8楼: 楼上的懂指针么?表示怀疑中...
9楼: unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
Tdata=record//程序消息传送数据类型
fromhost:string;
字串6
tohost:string;
xiaoxi:string;
mingling:integer;
end;
PPTdata=^Tdata;
type
Thost=record //服务端记录登陆的客户端
addr:string;//socket的地址
hdle:Thandle;//socket的句柄
hostname:string;//客户端主机名
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
pdata:PPTdata;
begin
pdata^.xiaoxi:='服务器公告:';
showmessage(pdata^.xiaoxi);
end;
end.
10楼: 各位不好意思了,连这么简单的问题都来麻烦大家真是不好意思,正如上面的wolaixue、P_lilac、xmcccc说的一样,我没有在使用指针之前申请内存,这是在c中的不扎实功底遗传下来的,非常不好意思,麻烦大家这么久
借此机会,也奉劝大家一句:一定要把基础打好。。。。。。。。。
11楼: 多人接受答案了。