堆和栈的区别?

busybeeCS 2011-05-20 01:53:45
1.堆和栈的区别是什么?
2.栈向下增长,堆向上增长,如何通过程序演示?
...全文
112 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Louistao 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dizuo 的回复:]

C/C++ code
int *p=new int[100];
int *q = new int[100];

//比较栈
cout << p << endl;
cout << p << endl;

//比较堆
cout << &p << endl;
cout << &p << endl;
[/Quote]
意思是不是说指针p是局部变量,它的地址是存储在栈上的
JetKate 2011-05-20
  • 打赏
  • 举报
回复
分别定义一些变量,打印内存地址看下
ryfdizuo 2011-05-20
  • 打赏
  • 举报
回复
int *p=new int[100];
int *q = new int[100];

//比较栈
cout << p << endl;
cout << p << endl;

//比较堆
cout << &p << endl;
cout << &p << endl;

maoxing63570 2011-05-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 busybeecs 的回复:]
2.栈向下增长,堆向上增长,如何通过程序演示?
[/Quote]
很简单啊,在main中这些玩
int *p=new int[100];
int arr[100];
然后打个断点,然后去看对应的汇编代码,你分别看看第一个元素和最后一个元素的地址那个大不就行了
bdmh 2011-05-20
  • 打赏
  • 举报
回复

65,186

社区成员

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

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