请问内存的分配方式

mailzyok 2003-10-20 08:19:08
网上哪有具体介绍,特别是从栈上创建和从堆上分配的区别,以及堆和栈的概念,谢谢
...全文
29 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kahn 2003-10-20
  • 打赏
  • 举报
回复
桟上分配的内存不需要用户去进行管理,在桟上分配的对象在离开作用域后,系统会自动释放掉,因此不会有内存泄漏的问题,但是正因为如此,所以桟上分配的对象不能作为返回值使用,因为当函数返回时,对象离开了作用域,所以被释放掉了。另外,桟空间较自由空间小得多,所以一般在桟上分配的内存在1M以内。而对于堆而言,它是在自由空间上进行分配的,用户必须关心内存的分配和回收(释放),但如果有GC的话,用户对释放就可以安心了。当然像C++这种没有GC功能的语言,同样可以通过模板来替代。以上是我的一点拙见,见笑了。
PriMaryPeople 2003-10-20
  • 打赏
  • 举报
回复
栈好象是系统分配的吧。而堆则是按程序要求分配的。因为有很多的静态变量、全局变量、以及函数的返回地址等都存在栈中。
不对之处请指教。
mailzyok 2003-10-20
  • 打赏
  • 举报
回复
栈上分配额内存自己管理么?不是吧
Andy84920 2003-10-20
  • 打赏
  • 举报
回复
我也来看看!
我只知道堆是系统为程序需要的内存进行分配。并且进行管理,你不用管它是如何释放的。
而栈上的内存分配是程序给它分配的,你要自己去管理内存,否则就内存泄漏!
mailzyok 2003-10-20
  • 打赏
  • 举报
回复
这个我看过了
daizh 2003-10-20
  • 打赏
  • 举报
回复
http://www.pcvc.net/category/content.asp?sendid=114

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧