社区
C++ 语言
帖子详情
C/C++程序中堆区最大有多大?
恋喵大鲤鱼
领域专家: C/C++技术领域
2015-05-17 05:28:46
为什么我在VS2012中new了如此大的空间却不会报错?char* p=new char[1024*1024*1024*1024*1024];我的物理内存为4G!
...全文
947
3
打赏
收藏
C/C++程序中堆区最大有多大?
为什么我在VS2012中new了如此大的空间却不会报错?char* p=new char[1024*1024*1024*1024*1024];我的物理内存为4G!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lraining
2015-05-17
打赏
举报
回复
Linux虚拟地址空间内核占1GB,留给用户进程3GB,Windows是各占2GB,用户空间也是用户进程最大的堆申请数量了。但考虑到程序本身大小,动态库等因素,实际的堆申请数量是达不到最大值的,Linux小于3GB,Windows小于2GB。
苏叔叔
2015-05-17
打赏
举报
回复
1024*1024*1024*1024*1024的结果,超出了size_t的表示范围,结果是0
iyomumx
2015-05-17
打赏
举报
回复
因为 1024*1024*1024*1024*1024 == 0
C/
C++
语言的内存四
区
(栈
区
,堆
区
,全局
区
,代码
区
)(附图详解)
在执行一个C/
C++
语言
程序
时,此
程序
将拥有唯一的“内存四
区
”——栈
区
、堆
区
、全局
区
、代码
区
。每个
程序
都有唯一的四个内存
区
域,我们需要熟悉和了解各个
区
域的特性,例如存储什么类型的数据, 有谁去申请开辟,,又有谁去管理释放。 流程说明: 1、操作系统把物理硬盘代码load到内存 2、操作系统把c代码分成四个
区
3、操作系统找到main函数入口执行 静态
区
,代码
区
,堆
区
,栈
区
存储地址依次下降 ...
C语言
程序
内存四
区
——栈
区
,堆
区
,全局
区
,代码
区
C语言
程序
内存四
区
——栈
区
,堆
区
,全局
区
,代码
区
C/
C++
中哪些数据存放于栈
区
、堆
区
、静态
区
、常量
区
的详细说明
在
C++
程序
中,内存的分配可以划分为多个
区
域,主要包括栈
区
、堆
区
、静态
区
、常量
区
等。下面详细说明每个
区
域的特点以及它们存放的数据类型:
深入理解C/
C++
内存管理:栈
区
与堆
区
的奥秘
本文深入解析了
程序
运行时的内存管理机制,重点介绍了栈
区
和堆
区
的特点与
区
别。栈
区
由编译器自动管理,采用后进先出结构,适合存储局部变量和函数调用信息,但容量有限;堆
区
需要
程序
员手动分配和释放,容量大但管理不当易导致内存泄漏。文章通过代码示例展示了栈变量的自动生命周期和堆内存的手动管理过程,并对比了两者在管理方式、效率、大小限制等方面的差异,强调了合理使用内存
区
域对编写高效稳定
程序
的重要性。
C/
C++
程序
存储
区
C/
C++
编译的
程序
占用的内存分为以下几个部分: .stack .heap .data. .bss .text 栈
区
(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈 堆
区
(heap) — 一般由
程序
员分配释放, 若
程序
员不释放,
程序
结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 全局
区
(...
C++ 语言
65,214
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章