C++ main函数中的数组
来源:互联网 发布:基础地理数据下载 编辑:程序博客网 时间:2024/06/05 09:05
C++ 大数组
问题:为什么不能在main函数中设置过大的数组?
首先要提及一下函数调用,即调用者向被调用者传递一些参数,然后执行被调用者的代码,最后被调用者向调用者返回结果。
再者,C++程序的内存格局通常分为四个区:全局数据区(data area)、代码区(code area)、栈区(stack area)、堆区(heap area)(即自由存储区),全局数据区存储全局变量、静态变量和常量;所有类成员函数和非成员函数代码存放在代码区;为运行变量而分配的局部变量、函数参数、返回数据、返回地址等存放在栈区。
由此可知,若将数组设置在main函数中,它将因为是局部变量而被放入对应栈中,而C++中栈的大小默认是比较小的,1MB左右,若作为局部变量的数组的大小过大,可能会导致栈溢出而致程序无法正常运行。应将其定义为全局变量,存储在静态存储区中(静态存储区大小理论上可达到4GB),或使用动态内存分配。
阅读全文
1 0
- c中的main函数
- C++ main函数中的数组
- C语言中的main函数
- objective-c中的MAIN函数说明
- 关于C语言中的main函数
- C语言Main函数中的参数
- C 中的main函数的参数详解
- c语言中的main函数讨论
- 由一题讨论C语言中的“指针数组作main函数的形参”即 main(int argc,char *argv[])的使用
- java的main函数中的args数组传值问题
- java中的main函数
- JAVA中的main函数
- Java中的main函数
- Python中的main函数
- eCos中的main函数
- eCos中的main函数 .
- main 函数中的参数
- ActivityManagerService中的main函数
- Hive中的函数大全
- [c/c++][转]堆栈详解
- python之argparse模块
- MySql外键添加失败:java.ql.SQLException: Cannot add or update a child row: a foreign key constraint fails
- JAVA内部类的使用小结
- C++ main函数中的数组
- 使用Docker搭建基于MySQL、Apache和PHP的DVWA服务器
- 用面向对象解决:输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列
- 来自MOS文档的SQL语句
- JAVA入门
- GCD和LCM的一些性质
- 对Systemc的一点个人看法
- DropWizard--轻量级REST开发框架初次搭建
- HDU4734 F(x)(数位DP)