社区
C++ 语言
帖子详情
关于栈的分配
yyhtsm
2010-09-12 11:30:15
数组只能静态分配,因为局部变量是分配在栈中的。在编译时必须确定内存分配给栈的大小。
那么容器(如vector)也是分配在栈中的,为什么它就能实现动态分配?
...全文
125
6
打赏
收藏
关于栈的分配
数组只能静态分配,因为局部变量是分配在栈中的。在编译时必须确定内存分配给栈的大小。 那么容器(如vector)也是分配在栈中的,为什么它就能实现动态分配?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
十八道胡同
2010-09-12
打赏
举报
回复
这个看源码就有答案饿了
yyhtsm
2010-09-12
打赏
举报
回复
[Quote=引用 3 楼 pengzhixi 的回复:]
引用楼主 yyhtsm 的回复:
数组只能静态分配,因为局部变量是分配在栈中的。在编译时必须确定内存分配给栈的大小。
那么容器(如vector)也是分配在栈中的,为什么它就能实现动态分配?
里面是有一个指针成员 指向的是堆内存空间
[/Quote]
果然如此,又是pengzhixi,受教了,谢谢你
Bot制造师
2010-09-12
打赏
举报
回复
[Quote=引用 2 楼 yyhtsm 的回复:]
引用 1 楼 kingstarer 的回复:
容器内部实现在堆上分配空间
不是吧
int a=1;
vector<int> iv(5);
cout << &a << '\t' << &iv.begin() << endl;
结果是:0012ff54 0012ff64
是连续存放的
[/Quote]
连续排放不一定就是栈,堆内存只是可能不连续排放,不一定就肯定不是连续排放,只是操作系统会选择合适的时机去整理堆上的内存块
pengzhixi
2010-09-12
打赏
举报
回复
[Quote=引用楼主 yyhtsm 的回复:]
数组只能静态分配,因为局部变量是分配在栈中的。在编译时必须确定内存分配给栈的大小。
那么容器(如vector)也是分配在栈中的,为什么它就能实现动态分配?
[/Quote]
里面是有一个指针成员 指向的是堆内存空间
yyhtsm
2010-09-12
打赏
举报
回复
[Quote=引用 1 楼 kingstarer 的回复:]
容器内部实现在堆上分配空间
[/Quote]
不是吧
int a=1;
vector<int> iv(5);
cout << &a << '\t' << &iv.begin() << endl;
结果是:0012ff54 0012ff64
是连续存放的
kingstarer
2010-09-12
打赏
举报
回复
容器内部实现在堆上分配空间
堆内存优化之动态
栈
分配
本文探索的就是对于堆内存优化的一种技术,动态
栈
分配
(dynamic stack allocations),中心思想就是把在堆上申请内存的操作
分配
到
栈
上来完成。 主要参考文章在文末链接处附上了,一些翻译可能不太准确的术语可以直接看...
java让对象
分配
在
栈
上_Java中的
栈
上
分配
什么是
栈
上
分配
栈
上
分配
是java虚拟机提供的一种优化技术,基本思想是对于那些线程私有的对象(指的是不可能被其他线程访问的对象),可以将它们打散
分配
在
栈
上,而不是
分配
在堆上。
分配
在
栈
上的好处是可以在函数调用...
栈
上
分配
、TLAB
如果开启
栈
上
分配
,JVM会先进行
栈
上
分配
,如果没有开启
栈
上
分配
或则不符合条件的则会进行TLAB
分配
,如果TLAB
分配
不成功,再尝试在eden区
分配
,如果对象满足了直接进入老年代的条件,那就直接
分配
在老年代,如下图。...
逃逸分析之
栈
上
分配
栈
上
分配
:将堆
分配
转化为
栈
分配
。如果一个对象在子程序中被
分配
,要使指向该对象的指针永远不会发生逃逸,对象可能是
栈
上
分配
的候选,而不是堆上
分配
。 同步省略:如果一个对象被发现只有一个线程被访问到,那么...
堆和
栈
的内存
分配
堆和
栈
的内存
分配
堆和
栈
的区别
栈
(stack):堆(heap) 堆和
栈
的区别
栈
(stack): stack 用于静态
分配
内存,内存
分配
发生在连续的内存上。在
栈
上
分配
内存,首先编译器要知道
分配
的内存的大小,没当函数调用时,其变量...
C++ 语言
65,204
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章