主要是涉及无类型指针的强制转换问题。烦死我了。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.
一运行就出错,诸位大哥救救我吧!方便的话在机子上试一下,高分祝福各位新年快乐!

解决方案 »

  1.   

    你在做aa^:=10前必须先为它分配空间:
    代码如下:
    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;
      

  2.   

    new();分配内存
    dispose();释放内存如果不知道不知分配多少内存;可用AllocMem()分配,用FreeMem()释放
      

  3.   

    首先分配地址空间
    “count^:=integer(buf^);”
    这句是干什么?有问题吧
      

  4.   

    当然要释放
    Getmem();
    Freemen();