怪怪的TStringList问题 你的分析是对的ss:=s;原来的ss的的地址就没法访问了,但程序在关闭时系统会释放那一块内存的。后面的 s.Free; 是没有必要的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 提示:delphi中对于对象是通过引用来进行操作的,有些象java中对对象的处理,ss := s;后实际上ss和s是指向同一个实列,ss.free后实际上这一实列已经被释放掉了,再次s.free就会引起内存出错 为什么第一次s.free不会出错,非要第二次运行才出错呢? largewang(老王) 正是我想说的!S其实可以简单看作一个Pointer,Free之后释放资源了!但是s还是指向该地址的指针(虽然该地址空间资源已被系统收回)这个时候,你仍然调用该方法就会产生不确定的执行效果。或者有可能导致更严重的后果,但也有可能什么都没有。 对不起,菜鸟看到这里又有问题了,我刚开始学delphi6为什么我在写程序的时候用了//注释,程序在编译时会出错呢??我删除//以后就没事,不知是不是在程序中不能用//写注释???? 就给点提示吧,先谢谢各位的帮忙了,[email protected] 【清明】之二,记忆 中文簡體字繁體字的轉換 大家帮忙看看,创建消息事件出错~~~~~ 高手共商--控件的底层开发! 一個非常煩人的問題,請各位幫幫忙. 关于ADO连接FoxPro数据库的驱动,请教各位 listbox1int.items.indexof 中 indexof是什么意思?? 关于海量数据处理的问题,请大家帮助(很急) Tstrings为什么使用时要由Tstringlist来创建呢? 20分送上,要有源程序!方可给20大分!修复paradox类型的文件头 为什么我从dll中调出的模式窗体在任务栏上显示呢? 想交个DELPHI+SQL SERVER的朋友!
delphi中对于对象是通过引用来进行操作的,
有些象java中对对象的处理,
ss := s;后实际上ss和s是指向同一个实列,
ss.free后实际上这一实列已经被释放掉了,
再次s.free就会引起内存出错
但是s还是指向该地址的指针(虽然该地址空间资源已被系统收回)
这个时候,你仍然调用该方法就会产生不确定的执行效果。或者有可能
导致更严重的后果,但也有可能什么都没有。
[email protected]