| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1388 人关注过本帖
标题:为什么反复调用一个赋值函数会造成溢出呢
只看楼主 加入收藏
kissjetg
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-12
收藏
 问题点数:0 回复次数:2 
为什么反复调用一个赋值函数会造成溢出呢
我程序最近很不稳定。老是执行一会就自动关闭掉。后来调试了一个晚上找到了原来是堆溢出。但是仔细一看的时候
溢出的地方仅仅是一个变量名,不知道何解。百度过几次。有的人说是不断循环赋值而造成的错误(而我的
这个函数正好就是多个线程同时运行时必要调用到的函数),不知道是不是因为这样而造成溢出的。望各位
老大能给个解释!!该怎么解决这样的问题呀

Access violation at address 00402186 in module 'soej.exe'. Read of address 74656E36
搜索更多相关主题的帖子: 赋值 反复 函数 
2009-09-18 02:32
anthony634
Rank: 6Rank: 6
来 自:西南交大
等 级:贵宾
威 望:24
帖 子:653
专家分:10
注 册:2006-6-8
收藏
得分:0 
看下你的函数是不是线程安全的。如果里面涉及了全局变量而没有做好线程同步是会出问题的
2009-09-18 09:31
kissjetg
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-12
收藏
得分:0 
不好意思各位。因为刚下班所以赶紧回来看一下贴发现有这么多热心的朋友真的很感谢。下面是小弟程序中的错误的函数块。现在贴出来帮忙看看该如何解决这样的问题  

function RegexaAllA100(memostr,Rextop:string;RextopI:Integer;Rexup:string; RexupI:Integer;Listview:TListView;listbox:string;CountI:Integer):string;//返回seo内容中的地址
var  //如: RegexaAlla(内容,头部,        进或退值,         尾部         进或退值       listview     条数 )
  i,e:Integer;
  url,Surl:string;
begin
  for i:=0 to CountI do //有时循环一百次。有时十次。有时三十次。看得到的内容
  begin
    Delete(memostr,1,Pos(Rextop,memostr)+RextopI+length(Rexup)+RexupI);
    Surl:=Copy(memostr,1,Pos(Rexup,memostr)-1);
    Delete(Surl,Pos('?',Surl),100);
    e:=pos('http://',Surl);       //下面是得到地址    而listviewcaption和ListviewCaptiona是一个全局变量   
    if (e>=1) and (e<20) and (Pos(Hostdz(Surl,2),ListviewCaption+ListviewCaptiona)<1)
        and (BoxCheckurl(Surl,listbox))then
    begin
      try  //不知道为什么在url赋值时出错。有时出错有时不出错。很难捕捉
        url:=url+surl+#13#10;          //还会自动判断有没有重复值  有时这里会出现Access violation at address
      except
            //错误后处理的函数位置      
      end;
      surl:=Hostdz(Surl,2);
      try  //将得到的地址http://www.分割成  然后赋给全局变量ListviewCaptiona 经常出现下面的错误
         ListviewCaptiona:=ListviewCaptiona+surl+'|';  //将以前搜索过的值储存起来。  有时这里会出现Access violation at address
      except
         //错误后处理的函数位置   
      end;
    end;
  end;
  result:=url;
end;
 
 
2009-09-18 14:15
快速回复:为什么反复调用一个赋值函数会造成溢出呢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017987 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved