procedure TForm1.Button1Click(Sender: TObject);
var
x: integer ;
p: ^integer ;
begin
new(p) ;
x := 10 ;
p^ := x ; // 指针内存地址与x 不一致
p := @x ; // 指针内存地址与x 对致
//如果有 p:=@x ,Dispose(p)会提示错误的指针操作
Dispose(p);
end;是不是指针都用在 Record 记录中?
关于指针的内存分配释放有哪些注意事项?
var
x: integer ;
p: ^integer ;
begin
new(p) ;
x := 10 ;
p^ := x ; // 指针内存地址与x 不一致
p := @x ; // 指针内存地址与x 对致
//如果有 p:=@x ,Dispose(p)会提示错误的指针操作
Dispose(p);
end;是不是指针都用在 Record 记录中?
关于指针的内存分配释放有哪些注意事项?
解决方案 »
- 求ShowModal转Show的方法
- 成都现在是JAVA C# C++ 的工作很好找,我不知道其他地方,我打算换种开发工具了
- FastReport的一主带两从结构中如何实现这个
- 从Delphi5到Delphi7的奇怪错误: Null 不能用了?
- 我用IDTCPCLIENT写线程接收数据,可是丢失数据严重.怎么回事
- 各位老大,问一个极菜的问题,不要笑我!请问DataModule在哪里可以找到啊?哪个标签下啊?
- 怎么方便地将dataset中的记录导出为文本文件?
- 简单问题,怎么才能把这个函数的返回值转换成字符串放在一edit1.text中。50分
- ADOQuery分页码时的游标问题
- 系统是ghost的,excel安装不完全,ole导出就出错,改如何解决?
- 请问DELPHI现在还流行吗?我正准备学呢,可以开发大程序吗?
- 三层C/S结构的很难的问题,高手请进!
var
x: integer ;
p: ^integer ;
begin
new(p) ;
ShowMessage(Format('p当前指向地址:%d',[integer(p)]));
x := 10 ;
p^ := x ;
ShowMessage(Format('p当前指向地址:%d',[integer(p)]));
p := @x ; // 执行了这一句,你的指针p所指向的地址就变成了x的地址
ShowMessage(Format('p当前指向地址:%d;x的地址%d',[integer(p),integer(@x)])); Dispose(p); //因为你改变了p的指向,所以此时你调用dispose是错误的
end;我在你的代码中加了几句,你可以看看指针并不一定都用在record中,他仅仅指向一个地址