堆和堆栈什么区别???? 刚刚学习VC,今天看了一本书"有些窗口对象以变量的形式嵌入在别的对象内或以局部变量的形式创建在堆栈上,有些则用new操作符创建在堆中。"不知道堆和堆栈什么区别?我学数据结构的时候只有队列,堆栈。怎么还有堆阿 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 堆(heap)为程序保存的一块内存区域,用来保存那些在运行时才知道其存在与大小的数据;程序能够从堆中分配内存给这些元素;在用完之后,应该释放掉这些内存。堆中所有的的东西都是匿名的----不能按名字直接访问只能通过指针间接的访问栈(stack)为程序保存的一块内存区域,用来保存状态数据,例如:过程或函数的地址,参数,有时候还包括局部变量。所以,堆和栈的区别:一个是动态,一个是静态;堆是在程序运行时动态分配的,而栈的分配是编译完后,就确定了;栈内存的回收,系统自动进行了,而堆上分配的内存,需要手工显式回收。malloc , new分配的内存就是在堆上的,如果不用free, delete回收,就会造成内存泄漏(垃圾),不过,一般操作系统会在整个程序(进程)退出时,回收分配给这个进程的内存等资源。 那么为什么有时候称作“堆栈”:有些窗口对象以变量的形式嵌入在别的对象内或以局部变量的形式创建在堆栈上到底是指堆,还是栈,还是 both?另外 stack 也被翻译为 堆栈,那么按你上面的解释stack = 堆栈 = 栈??我希望搞清楚谢谢 这个我也迷惑,我认为是翻译的问题我个人以为stack = 堆栈 = 栈 堆栈 应该是操作系统为你的运用程序分配的一个最大4G(win2k) 的空间中的给用户使用的一部分吧,他是可以不停的生长的。如果你在程序中new 了 没有delete 的话就成了野指针,谁也不能回收,只能启动系统了。 VC用ADO附加数据库出错 GDI+高手请进!非常怪异的问题!(200分) vc 设置两个计时器问题 窗口之间发送消息的问题! 一个关于链接的问题?? 武大计算机学院的地址是什么 新写了一个小玩意,想以自由软件的形式发布,请问哪些是比较好的发布网站? 请教高手CStringList怎么用啊 MFC中如何用,列表框(clistbox)和编辑框,按矩阵的样子输出一个二维数组!! MFC WinINet 怎么用?? 矩阵和edit框 基础问题:这段代码有什么错误?
为程序保存的一块内存区域,用来保存那些在运行时才知道其存在与大小的数据;
程序能够从堆中分配内存给这些元素;在用完之后,应该释放掉这些内存。
堆中所有的的东西都是匿名的----不能按名字直接访问只能通过指针间接的访问栈(stack)
为程序保存的一块内存区域,用来保存状态数据,
例如:过程或函数的地址,参数,有时候还包括局部变量。所以,堆和栈的区别:一个是动态,一个是静态;
堆是在程序运行时动态分配的,而栈的分配是编译完后,就确定了;
栈内存的回收,系统自动进行了,而堆上分配的内存,需要手工显式回收。malloc , new分配的内存就是在堆上的,如果不用free, delete回收,
就会造成内存泄漏(垃圾),不过,一般操作系统会在整个程序(进程)退出时,
回收分配给这个进程的内存等资源。
有些窗口对象以变量的形式嵌入在别的对象内或以局部变量的形式创建在堆栈上到底是指堆,还是栈,还是 both?
另外 stack 也被翻译为 堆栈,那么按你上面的解释
stack = 堆栈 = 栈??我希望搞清楚
谢谢
我个人以为stack = 堆栈 = 栈