社区
C++ 语言
帖子详情
请问vector在堆上还是栈上增长
科技完美生活
2010-11-20 01:19:12
vector<int*> *p = new vector<int*>;
int M = 8888;
for(int i=0;i<M;++i)
{
p->push_back(0);
}
vector肯定是要消耗内存了,请问一下是在栈上还是堆上,
如果是栈上,如何才能让p在堆上增长?
多谢
...全文
1869
6
打赏
收藏
请问vector在堆上还是栈上增长
vector *p = new vector; int M = 8888; for(int i=0;ipush_back(0); } vector肯定是要消耗内存了,请问一下是在栈上还是堆上, 如果是栈上,如何才能让p在堆上增长? 多谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ji12332111
2012-04-10
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
无论你的定义是:
vector<int*> *p = new vector<int*>;
还是
vector<int*> p;
其元素都是在堆上进行分配。
[/Quote]
但是vector<int*> p;中p本身还是在栈里面的吧。。。
muleisheng
2011-04-11
打赏
举报
回复
baiduyixia
科技完美生活
2010-11-20
打赏
举报
回复
感谢两位星级人物、也早点休息
gules
2010-11-20
打赏
举报
回复
无论你的定义是:
vector<int*> *p = new vector<int*>;
还是
vector<int*> p;
其元素都是在堆上进行分配。
mstlq
2010-11-20
打赏
举报
回复
堆上……
楼主不必操心
C++
vector
与指针[可运行源码]
本文详细介绍了C++中
vector
与指针的交互方式,包括指向
vector
的指针、指向
vector
的指针数组以及
vector
内是指针元素的情况。文章首先讲解了如何通过指针指向
栈上
和
堆
上的
vector
,并分析了局部变量自动释放与主动释放的区别。接着,文章探讨了指向
vector
的指针数组的使用方法,包括
栈上
和
堆
上的不同处理方式。最后,文章简要介绍了
vector
内存储指针元素的情况。通过多个代码示例,文章清晰地展示了各种情况下的实现细节和注意事项,为C++开发者提供了实用的参考。
vector
在
堆
上还是在
栈上
(等待自己慢慢领悟吧)
探索1: ME:: L,
vector
变量是存放在
堆
上还是
栈上
的?网上说法不一,我也没有找到权威的表述L:
堆
、栈 和
vector
有啥关系?L: 你把它放哪里,它就在哪里ME: [分享]
堆
、栈的地址高低? 栈的
增长
方向? https://www.zhihu.com/question/36103513?sort=createdME: 这个例子作者认为
vector
在
堆
上.L:
vector
管理的内存...
vector
是在
栈上
还是在
堆
上
在C++中,std::
vector
对象的存储位置取决于其定义方式:如果作为局部变量或类的非静态成员变量,则存储在
栈上
;如果使用new动态分配,则存储在
堆
上。然而,
vector
管理的元素始终存储在
堆
上,因为
vector
需要动态调整大小,
堆
内存更适合这种需求。
vector
使用RAII机制,确保对象析构时自动释放
堆
上的内存,避免内存泄漏。相比之下,固定大小的数组(如std::array或原始数组)则存储在
栈上
。总结如下:
vector
对象本身可存储在栈或
堆
上,而其元素始终存储在
堆
上。
堆
和栈的区别——
vector
引发的思考
在使用
vector
这个结构的时候,如果
vector
在函数内部直接定义,则对象存储在
栈上
,数据存储在
堆
上;而通过new动态创建时,指针在
栈上
,对象和数据都在
堆
上。同时,at()方法提供了越界检查,但会带来额外的时间开销。无论哪种方式,
vector
的数据总是位于
堆
上。那么为什么会有
堆
和栈呢?本文将对
堆
和栈的区别,内存静态分配和动态分配,智能指针进行了介绍,总结一下就是
堆
可以对栈进行补充,动态分配内存,智能指针可以自动管理动态分配的对象,避免内存泄漏和资源未正确释放的问题。
【底层机制】C++
vector
对象到底是在
堆
上还是
栈上
?
vector
对象本身存放在其被定义的作用域中,而
vector
所管理的动态数组(元素数据)则几乎总是在
堆
上
C++ 语言
65,207
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章