主要是涉及无类型指针的强制转换问题。烦死我了。Form1中有两个按钮、一个edit.
var
Form1: TForm1;
buf:Pointer;//定义一无类型指针
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var aa:^integer;//定义一整型指针
begin
aa^:=10;
buf:=aa;//传递
end;
procedure TForm1.Button2Click(Sender: TObject);
var count:^integer;//定义一整型指针
begin
count^:=integer(buf^);
edit1.Text:=inttostr(count^);//从edit1里看数值
end;
end.
一运行就出错,诸位大哥救救我吧!方便的话在机子上试一下,高分祝福各位新年快乐!
var
Form1: TForm1;
buf:Pointer;//定义一无类型指针
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var aa:^integer;//定义一整型指针
begin
aa^:=10;
buf:=aa;//传递
end;
procedure TForm1.Button2Click(Sender: TObject);
var count:^integer;//定义一整型指针
begin
count^:=integer(buf^);
edit1.Text:=inttostr(count^);//从edit1里看数值
end;
end.
一运行就出错,诸位大哥救救我吧!方便的话在机子上试一下,高分祝福各位新年快乐!
代码如下:
var
Form1: TForm1;
Buf:pointer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
aa:^integer;
begin
aa := AllocMem(sizeof(integer));//分配空间
aa^ := 10 ;
Buf := aa ;
end;procedure TForm1.Button2Click(Sender: TObject);
var
count:^integer;
begin
count := Buf ;//注意这里,是地址引用!
Edit1.Text := IntToStr(count^);
end;
dispose();释放内存如果不知道不知分配多少内存;可用AllocMem()分配,用FreeMem()释放
“count^:=integer(buf^);”
这句是干什么?有问题吧
Getmem();
Freemen();