循环运行完这句之后SetLength(sRet, pData.iDataLen - (SHEAD_LEN + 1) + 2);内存溢出了 循环运行完这句之后SetLength(sRet, pData.iDataLen - (SHEAD_LEN + 1) + 2);内存溢出了这是怎么回事啊?用setlength的不用释放的吧?可是我就溢出了呢,怎么办呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SetLength()用来分配动态数组类型的空间,本质上和new(XXX)和XXX:=TXXX.create一样,因此用完后也需要手工释放。释放也用SetLength,只不过后面的长度参数要设成0。 我断点运行了,sret是string型的变量,前面都不会出错,到上面那两句就出问题了,我也按一楼那位说的setlength(sret,0)了,可是不知道怎么了还是不行,,,,string型的不是也可以用setlength来设置长度的吗? string类型是可以那样用,不过建议还是用array of char,如果用setlength的话string的类型相当于ShortString最多只能存储256个字符,如果超过这个数可能就要报错了,动态数组用完要释放的。 AdvStringGrid 与左 右 上 下 键 fastreport和qreport哪个更好用,用法相同吗? 关于窗口重画的问题,求助 dbgrid的单元格被修改后是立即更新到数据库还是要update一下? …………请教各位:Delphi编写的应用程序服务器(MIDAS)和VC编的Client连接方面吗?…… 如何动态添加dbgrid中的显示列? 如何屏蔽事件相应 这种三层怎么做啊! reportmachine操作手册 知道控件名称怎么找到控件? 网上下载的businessskinform,能不能用在商业软件上? delphi三层结构如何设计?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货