社区
C++ 语言
帖子详情
二维数组占用内存情况
ljq550000
2011-07-22 08:14:17
#include <iostream>
#include <windows.h>
using namespace std;
int a[99999][99999];
int main()
{
Sleep(10000);
return 0;
}
...全文
1136
28
打赏
收藏
二维数组占用内存情况
#include #include using namespace std; int a[99999][99999]; int main() { Sleep(10000); return 0; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Terabit
2011-08-04
打赏
举报
回复
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表.
引用自
http://blog.csdn.net/zlp8383178/article/details/1657897
强迫症专用头像
2011-08-04
打赏
举报
回复
我是来学习的
mainsea
2011-08-03
打赏
举报
回复
!@#¥%……&*
jernymy
2011-08-02
打赏
举报
回复
不在堆,也不在栈中,静态存储区,运行时分配.
visualwind
2011-08-02
打赏
举报
回复
[Quote=引用 16 楼 threeleafzerg007 的回复:]
对csdn,有所失望 所谓有星的 或者不带星的
都不知道这个变量具体在程序的那个section里。
无初始值全局变量在binary的.bss段,只有占位符。只有系统启动这个程序时,才实际分配空间。。。。
[/Quote]
VC编译器会报错的
辰岡墨竹
2011-08-02
打赏
举报
回复
对于没有初始化的全局变量,不是在栈里,在BSS段里有一个说明,在EXE里只有几个字节。OS加载时会,按BSS的说明分配内存的。所以编译不出错,不过系统分配时失败。
乐哉悠哉
2011-08-02
打赏
举报
回复
[Quote=引用 16 楼 threeleafzerg007 的回复:]
对csdn,有所失望 所谓有星的 或者不带星的
都不知道这个变量具体在程序的那个section里。
无初始值全局变量在binary的.bss段,只有占位符。只有系统启动这个程序时,才实际分配空间。。。。
[/Quote]
占哪里的位啊?真心求解~
匚匚
2011-08-02
打赏
举报
回复
这是全局变量啊
应放在BSS段吧
机智的呆呆
2011-08-02
打赏
举报
回复
[Quote=引用 17 楼 healer_kx 的回复:]
火前第一帖!
[/Quote]
火前第二帖!
healer_kx
2011-08-02
打赏
举报
回复
火前第一帖!
threeleafzerg007
2011-08-02
打赏
举报
回复
对csdn,有所失望 所谓有星的 或者不带星的
都不知道这个变量具体在程序的那个section里。
无初始值全局变量在binary的.bss段,只有占位符。只有系统启动这个程序时,才实际分配空间。。。。
pamtry
2011-08-02
打赏
举报
回复
被另外一个帖子引过来
话说如果没记错的话只声明不初始化的全局变量,是分配到bss段的
也就是23L说的
“不在堆,也不在栈中,静态存储区,运行时分配.”
珍惜生命远离CPP
2011-08-02
打赏
举报
回复
留个名。。。
qianwen36
2011-07-29
打赏
举报
回复
[Quote=引用 3 楼 ljq550000 的回复:]
引用 2 楼 jackyjkchen 的回复:
栈不要超过1M
这个不是在堆上分配的么
[/Quote]
全局变量,或是静态变量都不存在内存分配问题,也就是说不需要程序员考虑这事情。是根据编译器规则来的,被指定在程序数据段中的静态区域。所以他的生命期是随同应用程序的整个生存期的。
chen16501560
2011-07-28
打赏
举报
回复
堆区 一般是new/free malloc/delete 申请的
赵4老师
2011-07-25
打赏
举报
回复
如果有一天,你真要用这么大的数组的话,别忘了_lseeki64
wjjjuniniho
2011-07-25
打赏
举报
回复
[Quote=引用 3 楼 ljq550000 的回复:]
引用 2 楼 jackyjkchen 的回复:
栈不要超过1M
这个不是在堆上分配的么
[/Quote]
这个是在全局区(或者叫静态区)分配的
sjy88813
2011-07-25
打赏
举报
回复
mark
luciferisnotsatan
2011-07-25
打赏
举报
回复
[Quote=引用 6 楼 babilife 的回复:]
受限的因素比较多,但是,不受物理内存限制。(你编译出的程序,即使你的机器物理内存有限,但你可以找到一个物理内存更大的机器,从而成功运行。另外,考虑虚拟内存。)
1、来自编译器的限制:大小不能超过size_t所能表示的最大值。
2、来自操作系统的限制:32位windows系统中,一个程序所能使用的内存最多不超过2G(也有说是3G的,我也不是很清楚)。其它操作系统类似。
另外,堆栈上的……
[/Quote]
windows可以设成3G用户态模式
lionghua
2011-07-25
打赏
举报
回复
好像之前有个问题和你提的类似。因为没有用到那么多,只是声明而已。不知道回答对不对
加载更多回复(8)
C++数组-
二维数组
本文详细介绍了
二维数组
的四种定义方式,并通过实例演示了如何初始化和遍历
二维数组
。此外,还介绍了如何获取
二维数组
的
内存
占用
情况
及首地址。
C++指针:(包括
二维数组
、二级指针、动态
二维数组
内存
连续)
本文详细探讨了C++中的指针概念,包括一级指针与二级指针的区别,以及如何通过指针实现动态
二维数组
的
内存
连续分配。同时,文章还解释了不同类型指针的
内存
占用
情况
,并提供了丰富的代码示例。
5.3.2、
二维数组
数组名
本文通过一个简单的C++程序,详细介绍了
二维数组
的
内存
占用
情况
及其首地址的获取方法。包括如何计算
二维数组
的行数、列数以及每个元素的
内存
占用
情况
。
二维数组
的定义和初始化
文章介绍了C语言中一维和
二维数组
的定义、
内存
占用
以及初始化方法。
二维数组
由两层下标确定元素位置,
内存
占用
等于元素个数乘以基类型字节数。数组的初始化可以按元素或按行进行,部分
情况
下第一维长度可省略。在给定的例题中,程序根据年份判断是否为闰年,输出相应月份的天数。
对《java程序员上班那点事》笔者对数组
占用
内存
质疑
本文通过具体测试案例,对比了一维数组与
二维数组
在Java虚拟机中的
内存
占用
情况
,并针对测试结果进行了初步分析。
C++ 语言
65,210
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章