分类: |
- 1
堆溢出
作者:admin 日期:2010-08-15
你的症状是因为你浏览的页面的脚本中的函数出现了过度的递归调用,比如递归了4096次,然后就溢出了
一、堆溢出后的后果;
现在的系统管理堆,为了查询的高效快速,一般都使用的双向链表结构。我们来看
双向链表管理的时候的删除操作。*a,*b,*p1,*p2,*c,*d都是指针,考虑双向链表,
a,b--->p1,p2--->c,d,其中由双向链表有*b=p1,*p1=a,*p2=c。如果是空闲内存链表,
那么申请使用p1、p2指向的内存,或者如果是使用内存链表,释放p1、p2指向的内存,
都会从这个链表中删除p1,p2。删除后的链表是a,b--->c,d,应该有内存改写操作:
*b=c,*c=a。这时代码是经过链表检索从a,b得到的p1,p2,一般为了高效等就不会记忆
a,b,因为双向链表就是为了从一个结点可以方便的得到上级和下级结点。所以那两条
内存操作都将会转换成p1、p2相关的操作。根据前面得到的信息,经过简单的代换就可
以得到我们需要的代码:
- 1