当前位置: 首页 > wzjs >正文

网站建设制作小程序开发商城全网推广运营公司

网站建设制作小程序开发,商城全网推广运营公司,色流网站如何做,淘宝客不建立网站怎么做C 创建静态数组出现栈满程序崩溃的问题 问题&#xff1a; 在C中&#xff0c;在函数中创建一个比较大的数组&#xff0c;会导致程序崩溃无法运行。 如&#xff1a; #include<iostream> #include<vector>const int MAX_N 100000 10; int main(){vector<int&g…

C++ 创建静态数组出现栈满程序崩溃的问题

问题:

在C++中,在函数中创建一个比较大的数组,会导致程序崩溃无法运行。
如:

#include<iostream>
#include<vector>const int MAX_N = 100000 + 10; int main(){vector<int> arr[MAX_N];		// 会导致程序根本无法运行cout<<"I am a array"<<endl;	// 这行代码更不会输出!return 0;
}

原因解释:

数组的内存分配机制:

  • 如果是静态数组,如int arr[10],会直接分配在中,栈的空间通常很小,通常为 1~8MB

    栈(Stack) 是程序运行时用于存储局部变量和函数调用上下文的内存区域。它的大小通常由操作系统或编译器限制,默认栈空间很小(通常为 1 ~ 8MB)。

  • 如果动态数组,如int* arr = new int[10],会直接分配在中,堆支持动态内存扩展,就一般情况而言,堆不会出现满的状况,除非内存满了,注意:堆空间需要手动维护也就是在不适用是需要手动释放内存。
    动态数组的形式:
    // 情况一:
    int* arr = (int*) malloc(sizeof(int) * 10);
    // 释放
    free(arr)// 情况二:
    int* arr = (int*) new int[10];
    // 释放
    delete[] arr;// 情况三:(不需要手动维护)
    vector<int> arr(10);
    
  • 静态数组全局定义:将静态数组定义在函数外部,此时静态数组存储的位置变为了一个全局变量,对于全局变量有:全局变量存储在数据段(Data Segment)或 BSS 段中,这些区域的内存空间远大于栈。因此,即使数组非常大(如 100,010 个元素),全局变量的内存分配也不会导致栈溢出。
    1. 数据段和BSS段都是用来存储全局变量和静态变量的,但根据变量是否初始化以及初始化的值来区分两者。
    2. 数据段用于存储已初始化的数据,而BSS段则用于存储未初始化的数据或是初始化为0的数据.这意味着BSS段比数据段更节省磁盘空间,因为它不需要存储实际的初始值,仅需记录需要多少空间来存放这些变量即可。
http://www.dtcms.com/wzjs/459331.html

相关文章:

  • c 精品课程建设网站源程序google adsense
  • 腾讯云wordpress建站教程搜索引擎营销成功的案例
  • 如何用wordpress建网站郴州网站推广
  • 做网站的工作时间兰州seo新站优化招商
  • 湖南教育平台网站建设苏州疫情最新情况
  • 潍坊高新区建设局网站网站推广主要是做什么
  • frontpage制作个人网站 技巧肇庆seo外包公司
  • 做不锈钢门的网站免费外链代发平台
  • python做的知名网站淄博搜索引擎优化
  • 网站上的字体大小友情链接平台哪个好
  • 动态网站用什么语言做的他达拉非片的作用及功效副作用
  • 十堰 网站建设百度排行榜前十名
  • 网站建设万网谷歌浏览器2021最新版
  • 中山网站建设公司排名济南seo网站关键词排名
  • 爱站网关键词查询系统长沙百度快速排名
  • 银川做网站推广搜索优化软件
  • 关系营销案例金华关键词优化平台
  • 核酸检测公司上市合肥网络推广优化公司
  • 鹤壁百度网站建设互联网产品推广是做什么的
  • 腾讯云网站备案不能用阿里云seo关键词排名优化系统源码
  • 昆明php网站建设百度竞价教程
  • 素材下载网站模板seo外包优化服务商
  • 暴雪公司最新消息seo网站
  • 建站之星网站百度竞价排名收费标准
  • 单位做好疫情防控通知辽源seo
  • 企业 网站 建设 规范百度搜索app下载
  • 汝州住房和城乡建设局新网站百度云手机登录入口
  • 宝山做网站价格央视网新闻
  • 网站开发过程中出现的问题国内网站建设公司
  • 上海专业网站建设平台推广渠道有哪些平台