荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: reader (lyl), 信区: Program
标  题: Re: 堆和栈的具体区别是什么?
发信站: 荔园晨风BBS站 (Sat May 12 21:09:18 2007), 站内

我想深入一点,所说的“释放”,其实并没有释放,函数中的局部变量仍在内存中,即使你
离开函数后,如果你没有再进行任何库函数的调用或定义变量,也就是不要覆盖那段内存,
你还是可以访问到那个值的。
比如这个例子 char *aa(){char a[]="hello"; return a},在主函数中你用printf将打印不
出hello,因为printf是库函数,但如果你用一个系统调用(int 80h,调用write),这样就
不会覆盖栈的内容,就可以打印出来。(linux中)
第二点,如果你在栈中分配了大量的空间,如超过一页,则有可能访问不到,因为我好像记
得,离栈后,那一页内存好像要被回收,这时就不能访问了。
【 在 tiannan (心淡如水) 的大作中提到: 】
: 谢谢


--

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.150.28]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店