社区
C++ 语言
帖子详情
C++ 中标准库的内存是在堆中,还是在栈中分配?
wangcgfan
2010-09-25 10:56:02
C++ 标准库中自带的std::string类中字符数量是可以动态变化的,想问一个问题,string类内部存储字符串的内存 是在堆中还是在栈中分配的?有人了解吗?
...全文
704
12
打赏
收藏
C++ 中标准库的内存是在堆中,还是在栈中分配?
C++ 标准库中自带的std::string类中字符数量是可以动态变化的,想问一个问题,string类内部存储字符串的内存 是在堆中还是在栈中分配的?有人了解吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
鸵鸟
2010-10-01
打赏
举报
回复
STL容器如果定义为局部变量, 栈上一般三个指针begin, end & ?, resize之后sizeof (container)不变
元素分配在堆
qq120848369
2010-10-01
打赏
举报
回复
string里边就是一个指针char *,指针指向了一段内存,内存里放的就是字符串.
冻结
2010-09-25
打赏
举报
回复
能改变大小的容器都是在堆上。
栈上改变大小,没人会这么做吧。
冻结
2010-09-25
打赏
举报
回复
栈上一部分不变的。
堆上一部分可变的。
job82824
2010-09-25
打赏
举报
回复
[Quote=引用 3 楼 wangcgfan 的回复:]
从性能上讲,是堆上的性能好还是栈的性能好?
[/Quote]
性能上将,无论堆上的还是栈上的都好。性能的好坏是你的算法决定的,不是变量的性质决定。
动态变量有动态的好处--可伸缩;
静态变量有静态的好处--自动初始化;
没有绝对的好坏的。
Defonds
2010-09-25
打赏
举报
回复
是在堆上
wangcgfan
2010-09-25
打赏
举报
回复
从性能上讲,是堆上的性能好还是栈的性能好?
pengzhixi
2010-09-25
打赏
举报
回复
假设string使用一个指针实现的,那么这个指针本身是分配在栈上,但是指针指向的内存是堆上。
xingzhe2001
2010-09-25
打赏
举报
回复
string是堆上
辰岡墨竹
2010-09-25
打赏
举报
回复
STL自带的分配器无论是通过malloc还是new实现的,在Windows下都是直接调用HeapAlloc/HeapFree等堆类型API。一般STL来存放的数据都是频繁变化,且比较小的(不大于1MB),堆上足够用了。
luoqi
2010-09-25
打赏
举报
回复
stl模板自带内存分配器alloctor
不过,在使用时,你可以传入自己的内存管理器
alloctor一般有两种处理方法(PJL版,STL有很多版本)
1,POD类型,自己malloc
2,obj类型,调用obj的construct(一般是new placement)
而new placement一般使用编译器的new
你可以在<new.h>中找到,也可以实现自己的new替换
Sjdiao
2010-09-25
打赏
举报
回复
std::string 声明的变量 假如符值范围在0-15,那么他是栈分配的。如果长度超过了16那么就是在对上分的内存,debug一下就知道了。
C++
第3课:
C++
内存
泄露检测原理及案例实战
本课程具体的内容主要包括
C++
内存
泄露案例、VS2015
内存
泄露检测、野指针、VirtualAlloc/HeapAlloc/malloc/new的区别、
C++
堆
和
栈
的
内存
管理、
栈
简介、
堆
简介、
堆
与
栈
区别、
栈
的
内存
分配
、Windows的虚拟
内存
技术、...
C++
在
栈
上
分配
内存
malloc与alloc的区别 malloc()与 alloc() C语言跟
内存
分配
方式 (1) 从静态存储区域
分配
。
内存
在程序编译的时候就已经
分配
好,这块
内存
在程序的...
栈
内存
分配
运算内置于处理器的指令集
中
,效率很高,但是
分配
...
C++
堆
内存
分配
C++
堆
内存
分配
C
堆
内存
分配
抽象与分层 如何扩展有效
堆
内存
brk和sbrk系统调用 如何维护有效
堆
内存
operator new抽象与分层 c和
c++
的
内存
服务模型与计算机网络里面的协议分层模型有点类似。计算机网络协议大体分为...
C/
C++
内存
分配
管理
堆
:
堆
是操作系统
中
的术语,是操作系统所维护的一块特殊
内存
,用于程序的
内存
动态
分配
,C语言使用malloc从
堆
上
分配
内存
,使用free释放已
分配
的对应
内存
。
栈
:在执行函数时,函数内局部变量的存储单元都可以在
栈
上...
【
C++
】动态
内存
分配
详解(new/new[]和delete/delete[])
一、为什么需要动态
内存
分配
? 在
C++
程序
中
,所有
内存
需求都是在程序执行之前通过定义所需的变量来确定的。 但是可能存在程序的
内存
需求只能在运行时确定的情况。 例如,当需要的
内存
取决于用户输入。 在这些情况下...
C++ 语言
64,668
社区成员
250,488
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章