堆heap与栈stack有哪些区别?

BeginSC 2001-12-29 09:07:49
...全文
199 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
leizhengdeng 2002-01-07
  • 打赏
  • 举报
回复
char *str = "asdfadsf";

str在栈中占四个bytes
"asdfadsf"不在堆或栈,在全局静态区。
my_bluesky 2002-01-07
  • 打赏
  • 举报
回复

那 char *str = "asdfadsf"; 定义在哪里??
my_bluesky 2002-01-07
  • 打赏
  • 举报
回复

leizhengdeng(E-农民)

thanks

qflxh 2002-01-07
  • 打赏
  • 举报
回复
堆与栈的区别就像队列与栈的区别一样,都是线性表,只是处理方法不一样
phoenix96_2000 2002-01-06
  • 打赏
  • 举报
回复
C中malloc在堆里分配空间,
而普通的想int i=0;在栈里分配,
C++中new也是在堆里分配,

而pascal却都是在堆中分配的
cxjddd 2002-01-06
  • 打赏
  • 举报
回复
调用函数会在栈中增加一些东西,如函数的变量等。
bigshi 2002-01-06
  • 打赏
  • 举报
回复
phoenix96_2000(Jack Of All Trades) 
各位意见不一!老兄你的高见好象有点不妥!agree to : microant(源代码蚁) 
联系:stonbing@163.net
redkit 2002-01-06
  • 打赏
  • 举报
回复
堆相对空间较大
smartdraw 2002-01-05
  • 打赏
  • 举报
回复
■■
堆heap和栈stack都是存储变量的内存结构形式。
堆heap:存储全局的,静态的变量和动态分配的内存;
栈stack:存储执行信息和局部动态变量。
■■
BeginSC 2002-01-05
  • 打赏
  • 举报
回复
在编程时,什么时候应该用stack,什么时候用heap更好呢?用new创建object后如果程序出现异常中断会发生什么?
或者说,在编程中,使用stack和heap用哪些区别?尤其在提高程序的健壮性方面有那些注意事项?
microant 2001-12-29
  • 打赏
  • 举报
回复
stack是先入后出,local object和函数调用的返回地址什么的一般都放stack.
heap嘛,自由分配的内存(new/delete)基本都在heap里面。
gernal_dn 2001-12-29
  • 打赏
  • 举报
回复
先看以下汇编,就知道stack了,
再看以下C++的new/delete就知道heap了。
rhesus 2001-12-29
  • 打赏
  • 举报
回复
stack:用来处理程序运行的许多事务:保存函数调用时的返回地址,函数的变元,局部变量以及CPU的当前状态。
heap:是一个自由内存区域,程序可利用C的动态分配函数使用它。

69,373

社区成员

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

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