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

深圳品牌网站制作公司哪家好学校网站定位

深圳品牌网站制作公司哪家好,学校网站定位,开发公司 网站建设,网站开发工作怎么样本节对堆和栈内存进行描述。 应用程序启动后,操作系统将整个程序加载到内存,分配相应的物理ram,确保程序可以正常运行。堆和栈是ram中存在的两个区域。栈通常是一个预定义大小的内存区域,一般是2M字节左右。堆也是预定了默认值的…

本节对堆和栈内存进行描述。

  • 应用程序启动后,操作系统将整个程序加载到内存,分配相应的物理ram,确保程序可以正常运行。堆和栈是ram中存在的两个区域。栈通常是一个预定义大小的内存区域,一般是2M字节左右。堆也是预定了默认值的区域,但可以随着程序的运行变大。
  • #include <iostream>struct Vector3
    {float x, y, z;Vector3():x(1),y(2),z(3){}
    };int main()
    {//在栈上分配内存int value = 5;   //整数int array[5];    //数组for (int i = 0; i < 5; i++){array[i] = i;}Vector3 vector;  //类或者结构体//在堆上分配,使用new操作符在堆上进行分配int* hvalue = new int;*hvalue = 5;int* harray = new int[5];for (int i = 0; i < 5; i++){harray[i] = i+5;}Vector3* hvector = new Vector3;std::cin.get();
    }

  • 栈内存分配
  • 下图是展示的内存地址是栈上array的内存地址,可以看到,在内存上市连续的20个字节的大小,因为一个int是4字节。
  • 在array附近可以看到05 00 00 00,这是value的内存地址,中间多了一些字节是因为现在是在Debug模式下,中间添加的是安全守卫,在所有变量的周围都会添加,确保内存溢出不是改变所有变量等。
  • 继续执行,下入红色的字节表示的是vector的字节,中间插入的仍是安全守卫。
  • 堆内存分配
  • 继续执行上述程序,在内存中可以看到hvalue的值以及内存地址
  • 继续执行,查看harray的从,从下图可以看到和hvalue的内存地址相差很远。
  • 在堆中申请内存,需要程序员自己去释放内存,而在栈中,超出作用域后会自动释放内存。如下所示:
  • #include <iostream>struct Vector3
    {float x, y, z;Vector3():x(1),y(2),z(3){}
    };int main()
    {//在栈上分配内存int value = 5;   //整数int array[5];    //数组for (int i = 0; i < 5; i++){array[i] = i;}Vector3 vector;  //类或者结构体//在堆上分配,使用new操作符在堆上进行分配int* hvalue = new int;*hvalue = 5;int* harray = new int[5];for (int i = 0; i < 5; i++){harray[i] = i+5;}Vector3* hvector = new Vector3;delete hvalue;delete[] harray;delete hvector;std::cin.get();
    }
  • new操作符实际上调用了一个malloc的函数从堆上分配内存,程序会维护一个空闲链表,用来跟踪哪些内存块是空闲的。

  • 栈分配比堆分配效率高的原因
  • 在栈上分配内存仅仅是一条cpu指令,而在堆上, 需要执行很多操作,所以在栈上分配执行效率比在堆上分配高很多。下面通过查看生成的汇编代码来证实。

  • 如上图显示,在通过栈给value分配内存是,仅仅需要执行一条cpu指令。

  • 上图现在,在堆上则需要执行7条cpu指令,才能给hvalue分配内存。

  • 生成汇编的设置方法如下:

http://www.yayakq.cn/news/805647/

相关文章:

  • 自学建立网站做电子商务系统网站
  • 龙岩网站建设要多少费用搜索引擎作弊的网站有哪些
  • 优惠券网站建设制作东莞关键词排名推广
  • asp装修公司网站源码网站建设贰金手指下拉贰壹
  • 用地方名字做网站wordpress表格布局插件
  • 机械毕业设计代做网站辽阳建设网站公司报价
  • 新余市建设厅网站仓库进销存管理软件免费版
  • 承德做网站设计的wordpress 模板 安装
  • 平邑网站制作河南省住房和建设厅网站
  • 长沙公司做网站的价格四川seo快速排名
  • 免费手机网站网站防止恶意注册
  • 化妆品销售网站的源代码wordpress new
  • 做爰网站下载地址wordpress登陆后台总是跳转首页
  • 商城开发网站建设打开网站弹出视频js
  • 百度打网站名称就显示 如何做网站系统建设支出分录
  • 淘宝做网站的都是模板模板网站建设的弊端
  • 网站备案模板泰安网站制作推广
  • 做网站如何通过流量赚钱响应式网站移动端排名
  • 泰安市建设信息网站中国最新军事新闻 头条 今天
  • WordPress站群 管理大型企业网站建设制作
  • 社交移动电子商务平台有哪些如何做好seo基础优化
  • 校园招生网站建设的简报西安网站建设的费用
  • 个人网站备案网址导航做跟单员的话应该关注哪些网站
  • 合理规划网站wordpress订单系统
  • 重庆代还信用卡网站建设深圳网站建设qwyx100
  • 广州企业网站开发设计公司网站建设需要多少钱
  • 做网站如何赚广费电商网
  • 石家庄 做网站网站建设运行工作情况总结
  • 图片展示网站搭建淄博网站制作服务优化
  • 杭州城乡建设厅网站电脑培训课程