关于栈内存和堆内存的题问

fireseed 2004-07-10 03:43:49
一,栈内存是在进程启动时就分配好的吗?如果是,为什么在函数递归的情况下,进程的内存占用量会增高?

二,程序代码所占内存是否存储于栈中?

三,堆内存可以动态分配,有一套API支持,但栈内存是否只能静态分配?

四,EXE文件实际上存储的是机器码,那么,EXE文件的大小是否影响到程序占用栈内存的大小?

还有一些,问题,是基于这些问题的,不好表达,下面讨论时再提吧,欢迎解答!
...全文
1613 67 打赏 收藏 转发到动态 举报
写回复
用AI写文章
67 条回复
切换为时间正序
请发表友善的回复…
发表回复
jk01dingxian 2004-09-04
  • 打赏
  • 举报
回复
我懂的,你们讲到了,我不懂的你们也讲到了。
学习。
jiang8360 2004-07-20
  • 打赏
  • 举报
回复
up
goodname 2004-07-15
  • 打赏
  • 举报
回复
如果建议的是好书,仍然值得一看,并不是很多人都有时间来这里敲很多字的。
即使写了很多,未必有书上说的严谨周密。
楼上的认为把天下的好书读尽了么?
elevation2me 2004-07-15
  • 打赏
  • 举报
回复
mark m a r k m a r k m a r k
wangweixing2000 2004-07-15
  • 打赏
  • 举报
回复
好贴!我也一直没有搞清楚!学习!
boatzm 2004-07-14
  • 打赏
  • 举报
回复
mark!
zf0579 2004-07-14
  • 打赏
  • 举报
回复
答案一:不是
答案二:不是
答案三:不是,例如VC++的_alloca函数就动态分配内存在栈上,这在ATL中就用到过。
答案四:没有直接关系,要试验可以用ASM写个EXE程序。
fireseed 2004-07-14
  • 打赏
  • 举报
回复
BS那些爱说“建议楼主看XX书”的人!
alphafeng 2004-07-14
  • 打赏
  • 举报
回复
我看搂主还是先看一下操作系统方面的书吧 。上面对于内存管理有很详细的介绍!
Dong 2004-07-14
  • 打赏
  • 举报
回复
看到问题后从书上抄下来的。
Dong 2004-07-14
  • 打赏
  • 举报
回复
一个已完成便宜的c程序取得并使用4块在逻辑上不同且用于不同目的的内存区域,第一块区域含有程序代码;相邻的一块存储区域存放全局变量,其他两块分别是栈和堆,“栈”用来处理程序运行的许多事务,保存函数调用时的返回地址,函数的变元,局部变量以及cpu的当前状态,“堆”是一个自由内存区域,程序可利用c语言的动态分配函数使用他。
sharkhuang 2004-07-13
  • 打赏
  • 举报
回复
建议你看一本书<<linker and loader>>
pacman2000 2004-07-13
  • 打赏
  • 举报
回复
在linux中,函数void *alloca(size_t size);可以在栈中分配内存,而且和malloc不同的是,不用自己释放,在退栈的时候自动被回收。当然,这个不是POSIX标准的函数,是从BSD系列流传下来的。
see22 2004-07-13
  • 打赏
  • 举报
回复
虚心学习,up
robin97 2004-07-13
  • 打赏
  • 举报
回复
做了操作系统后发现:其实,他们可以不区分,区分是为了好管理
我做了一个简单的操作系统,那位能提供一个下栽的空间。跟我联系:robin97@163.net
beyondtkl 2004-07-13
  • 打赏
  • 举报
回复
先MK 下班了
expert2000 2004-07-13
  • 打赏
  • 举报
回复
难得一见得好贴。收藏先。
mrubbish 2004-07-13
  • 打赏
  • 举报
回复
收了......
sandrowjw 2004-07-12
  • 打赏
  • 举报
回复
补充一点:栈是否能够动态分配好像还是和系统有比较大的关系,系统可以决定是否把当前不用的内存页换掉,也可以决定是否响应缺页中断;我觉得栈的限制还是在于线性地址空间的问题上,如果动态分配要造成整个栈的地址迁移,那还不如把栈的大小定死。
真的李小龙 2004-07-12
  • 打赏
  • 举报
回复
别乱扯:好好看看‘汇编’,java等书籍。
汇编:中,你可以真正从地层了解‘栈’的分配机制
JAVA:中,你可以了解以下‘堆’,为什么JAVA要选择‘堆’:因为‘栈’的缺陷。但JAVA的速度之慢(比C,C++),你就可以知道‘栈’的好处:因为他的有序性。
加载更多回复(47)

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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