+ -
当前位置:首页 → 问答吧 → C++中的“堆栈”问题

C++中的“堆栈”问题

时间:2011-11-25

来源:互联网

问题一:C++中“堆”和“栈”分别指什么???

问题二:C++中“堆”和“栈”分别存放什么信息,又和应用程是什么关系???

作者: starryplayer   发布时间: 2011-11-25

1、“堆”和“栈”在C++中主要是指存放数据或者说是变量、对象的在内存中的区域,如同现实中 美国和中国的区别,表面上是在内存中的位置不同,但是分配内存的方式却大不相同,如同美国和中国虽然表面上都是国家,但是社会制度、各种福利 各种机构都不同,一句话就是内存中的不同区域。

2、c++中“堆”:在一个程序中 堆是一片内存,不是有堆内存之说,一般都是程序员手动分配,在C++中则是一般用new操作符(如果不使用C的malloc系列,好像只能用new)分配的内存,同样也只能程序员手动释放,不然会有内存泄露。当然了给什么分配内存,那只能给变量、类对象分配,所以存放的也是类对象和变量。
c++中“栈”:是程序自动分配的内存,比如调用某个函数,传递参数时(值传递),那么这个参数的值是在“栈”内存上分配的,当这个函数退出后 占用的“栈”内存也就自己释放了。
不知道讲得请不清楚
 

作者: tiantiananan   发布时间: 2011-11-25

建议先看看操作系统方面的资料

c++中的堆和栈是数据结构方面的东西,进程里的堆栈是内存相关的东西

作者: ouyh12345   发布时间: 2011-11-25

引用 1 楼 tiantiananan 的回复:

1、“堆”和“栈”在C++中主要是指存放数据或者说是变量、对象的在内存中的区域,如同现实中 美国和中国的区别,表面上是在内存中的位置不同,但是分配内存的方式却大不相同,如同美国和中国虽然表面上都是国家,但是社会制度、各种福利 各种机构都不同,一句话就是内存中的不同区域。

2、c++中“堆”:在一个程序中 堆是一片内存,不是有堆内存之说,一般都是程序员手动分配,在C++中则是一般用new操作……


谢谢。

作者: starryzone   发布时间: 2011-11-25

奇怪了,用IE9,上面的UBB(字体颜色,超链接)这一栏不见了。

更不用说是UBB插件了,好奇怪啊。。。
只剩个文本框啊了。

作者: starryplayer   发布时间: 2011-11-25

引用 4 楼 starryplayer 的回复:

奇怪了,用IE9,上面的UBB(字体颜色,超链接)这一栏不见了。

更不用说是UBB插件了,好奇怪啊。。。
只剩个文本框啊了。


用火狐没有问题,为什么用IE打开提示安装“Chrome”???
CSDN想干什么啊???

作者: starryplayer   发布时间: 2011-11-26

1、“堆”和“栈”在C++中主要是指存放数据或者说是变量、对象的在内存中的区域,如同现实中 美国和中国的区别,表面上是在内存中的位置不同,但是分配内存的方式却大不相同,如同美国和中国虽然表面上都是国家,但是社会制度、各种福利 各种机构都不同,一句话就是内存中的不同区域。

2、c++中“堆”:在一个程序中 堆是一片内存,不是有堆内存之说,一般都是程序员手动分配,在C++中则是一般用new操作符(如果不使用C的malloc系列,好像只能用new)分配的内存,同样也只能程序员手动释放,不然会有内存泄露。当然了给什么分配内存,那只能给变量、类对象分配,所以存放的也是类对象和变量。
c++中“栈”:是程序自动分配的内存,比如调用某个函数,传递参数时(值传递),那么这个参数的值是在“栈”内存上分配的,当这个函数退出后 占用的“栈”内存也就自己释放了。

作者: wyx100   发布时间: 2011-11-26

这种问题最好是先看书,论坛不能代替基本的学习

作者: Kaile   发布时间: 2011-11-26