CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

这样做会不会造成内存泄漏??

楼主kl2000()2004-04-03 12:48:48 在 Delphi / VCL组件开发及应用 提问

CBDepotName.Items.AddObject(FieldByName('DepotName').AsString,  
                  TObject(FieldByName('DepotNo').AsString));  
  请说明原因?? 问题点数:50、回复次数:12Top

1 楼xingyu(海)回复于 2004-04-03 12:52:10 得分 2

no,TObject没有创建Top

2 楼gb2008()回复于 2004-04-03 13:04:28 得分 2

应该没有问题,因为你强行转换是Query.Field....而不是一个新的Object  
    不过我一般很少这么写的Top

3 楼sxy_9761(暗里着迷)回复于 2004-04-03 13:31:11 得分 1

不会Top

4 楼kl2000()回复于 2004-04-03 13:36:13 得分 0

请继续!   看看还有没有不同的看法!Top

5 楼ttzzj(┊标识符┊)(I'm sorry, can you speak Java?)回复于 2004-04-03 13:38:08 得分 1

不会,它的项里的数据只是一个地址Top

6 楼hujinger(克沙)回复于 2004-04-03 13:48:38 得分 1

不会!!Top

7 楼zswangII(伴水清清)(一贴不灌,何以灌天下?)回复于 2004-04-03 13:57:02 得分 43

泄漏是不会泄漏,但你的这种用法本来就不对~~  
  FieldByName('DepotNo').AsString   相当于局部的string变量~~  
  跳出这个堆栈后,其资源就已经失效了~~  
   
  如果是整数类型就直接存整数,不要换成字符~~  
  CBDepotName.Items.AddObject(FieldByName('DepotName').AsString,  
                  TObject(FieldByName('DepotNo').AsInteger));  
  Top

8 楼kl2000()回复于 2004-04-03 14:06:54 得分 0

楼上说得有道理,就由于我的字段是varchar的类型,我才发此贴来问  
  个明白。以前也有人不提倡这种的用法,不知道是什么原因?Top

9 楼zswangII(伴水清清)(一贴不灌,何以灌天下?)回复于 2004-04-03 14:40:44 得分 0

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      P:   PChar;  
  begin  
      GetMem(P,   1);  
      FreeMem(P,   1);  
   
      P[0]   :=   'b';  
      Caption   :=   P[0];   //访问残留物,有什么感觉?~~  
  end;  
  Top

10 楼kl2000()回复于 2004-04-03 14:54:58 得分 0

不过请问楼上为什么存为   AsInteger   这个类型;  
  就不会释放掉呢!   我...也太.....  
  Top

11 楼zswangII(伴水清清)(一贴不灌,何以灌天下?)回复于 2004-04-03 15:18:38 得分 0

……  
   
  TObject、Integer都是四个字节~~  
  用四个字节保存四个字节的内容需要开辟其他资源吗?~~  
   
  string也是四个字节,为什么能存储大于四个字节的内容?~~  
  因为string是一个指针,string只保存数据所在的位置,而不是其数据的内容,明白没有?~~  
   
  现在理解不了,以后会理解的~~  
  解决问题先~~  
   
  CBDepotName.Items.Add(FieldByName('DepotName').AsString);  
  TempStringList.Add(FieldByName('DepotNo').AsString);   //可以借另一个列表来存储~~Top

12 楼kl2000()回复于 2004-04-03 15:46:33 得分 0

OK!Top

相关问题

  • 请问这样会不会造成内存泄漏?????????????????????
  • CArray会不会造成内存泄漏?
  • 内存泄漏是什么?怎么造成的?java中会不会产生内存泄漏?
  • 这样字符串指针会不会出现内存泄漏??
  • 这样会不会内存泄漏?或有其他解决办法
  • char* 这样会造成内存泄漏么
  • 如果在一个程序中使用了堆内存,但并不回收,会不会造成内存泄漏
  • 请问返回一个动态对象的引用会不会造成内存泄漏?
  • 激动!!`小弟第一次发现这样也会造成内存泄漏!
  • 请问_bstr_t会不会引起内存泄漏?

关键词

  • 内容
  • depotno
  • fieldbyname
  • asstring
  • cbdepotname
  • depotname
  • tobject
  • 类型
  • items

得分解答快速导航

  • 帖主:kl2000
  • xingyu
  • gb2008
  • sxy_9761
  • ttzzj
  • hujinger
  • zswangII

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo