当然会出错,你释放了两次。执行了代码newperson2:=newperson1;后,指针newperson2已经指向了newperson1,执行dispose(newperson1);
已经把指针指向的内容释放了,再释放就会出错。
已经把指针指向的内容释放了,再释放就会出错。
解决方案 »
- delphi调用sqlserver2000自定义函数时出现的问题(疑与中文字符有关)
- C++和delphi的HWND问题
- richedit中插入图片后,内存不断上涨
- 面试题 前辈们来帮帮忙
- #############我也给大家提供点超级猛料#############
- 菜鸟问问题:SQL的简单问题,在线等
- 兄弟救命啊,
- 请问哪里可以下载中文的windows Media Player SDK?
- 那位兄台知道,怎样在SQL Server中定义一个象Access那样自动编号的ID字段.
- 调试时,为什么会出现“project fwglproject.exe raised exception class Eaccess violation with message 'Access violation at ...“错
- http://delphi8888.myrice.com/
- 林子,快来,我给你分
newperson1的内存,这样newperson2指向的内存就不会被释放掉,正确的代码应该是: new(newperson1);
new(newperson2); newperson1^.num :=1;
newperson1^.name :='abc'; newperson2^:=newperson1^; //这里同你的代码不同
edit1.Text := inttostr(newperson2^.num);
edit2.Text := newperson2^.name; dispose(newperson1);
dispose(newperson2);