关于内存的一点点疑问

bityoungs 2012-12-11 09:32:33
各位童鞋:
我有几个关于内存方面的问题,请了解的童鞋指教指教。
1、堆内存,是分配给进程的么?是不是在这个进程结束之后,与之对应的对内存就释放掉?
2、编译器是如何在编译阶段确定程序或者数据的地址的
3、开始运行一个程序,操作系统是如何创建一下进程的
谢谢!
...全文
153 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
《深入理解计算机系统》
  • 打赏
  • 举报
回复
如果是没有delete,操作系统就会认为在使用,进程关闭后也不会收回。delete后的堆,以后才会被自动回收,所以我们delete后发现内存没有立刻增加。
zhanshen2891 2012-12-11
  • 打赏
  • 举报
回复
1. 如果你不手动释放的话,进程结束以后操作系统会自动收回。 2和3,去看一下 <windows核心编程>,这个不是几句话就说的清楚的。
  • 打赏
  • 举报
回复
1 堆分全局堆和局部堆,是用户向操作系统申请的,不管进程的事情,必须手工释放,不然就是内存泄露 2 如何确定地址...win32的话你可以看看PE结构
prajna 2012-12-11
  • 打赏
  • 举报
回复
这些建议都不错, 《程序员的自我修养——链接、装载与库》 《深入理解计算机系统》
zhanshen2891 2012-12-11
  • 打赏
  • 举报
回复
引用 3 楼 givemekey 的回复:
如果是没有delete,操作系统就会认为在使用,进程关闭后也不会收回。delete后的堆,以后才会被自动回收,所以我们delete后发现内存没有立刻增加。
不要误导人,你在哪看见说进程结束了占用的内存还不释放的?? 你也可以自己做个测试看看释放没有!
14号选手 2012-12-11
  • 打赏
  • 举报
回复
1.堆的操作是由用户进行的 2.关于地址如何确定,你可以去看下汇编里面介绍的寻址的内容的
赵4老师 2012-12-11
  • 打赏
  • 举报
回复
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构…… 《深入解析Windows操作系统-Windows Internals》 《Windows PE权威指南》 《程序员的自我修养——链接、装载与库》

69,373

社区成员

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

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