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

十大电商平台有哪些天津网站优化公司

十大电商平台有哪些,天津网站优化公司,腾讯云建设个人网站,中山网站模板2023年8月20日,周日早上 感觉很多东西还没吃透,很多疑问还没解决。 这篇文章可能会不定期更新。 还没解释为什么栈的空间有限,而堆的空间很大 还没解释栈和堆在内存中的位置 ...... 目录 怎么申请栈空间语法举例说明 怎么申请堆空间语法…

2023年8月20日,周日早上

感觉很多东西还没吃透,很多疑问还没解决。

这篇文章可能会不定期更新。

还没解释为什么栈的空间有限,而堆的空间很大

还没解释栈和堆在内存中的位置

......


目录

  • 怎么申请栈空间
  • 语法
  • 举例说明 
  • 怎么申请堆空间
  • 语法
  • 举例说明
  • 注意
  • 栈空间有多大
  • Linux
  •  Windows
  • 堆空间有多大
  • 堆和栈的区别是什么
  • 为什么要有堆,全用栈不行吗
  • 为什么要有栈?
  • 用代码说明堆和栈的一些区别
  • 用栈
  • 用堆

堆和栈都是内存中的一部分,

或者说,堆和栈属于内存空间。

怎么申请栈空间

语法

数据类型 名称;

举例说明 

#include<iostream>class A{};struct B{};int main(){int i;			//申请栈空间存储intdouble d;		//申请栈空间存储doublestd::string s;  //申请栈空间存储stringB b;			//申请栈空间存储结构体BA a; 			//申请栈空间存储类A
}

怎么申请堆空间

语法

数据类型 *名称 = new 数据类型;

举例说明

#include<iostream>class A{};struct B{};int main(){int *i=new int;					//申请堆空间存储intdouble *d=new double;		    //申请堆空间存储doublestd::string *s=new std::string; //申请堆空间存储stringB *b=new B;						//申请堆空间存储结构体BA *a=new A; 					//申请堆空间存储类A
}

注意

new和delete一定要配套,否则会出现内存泄漏。当电脑的内存泄漏太多时,就会因为无内存使用而导致程序崩溃。

栈空间有多大

Linux

在Linux中,可以通过如下命令查看操作系统的栈空间大小

ulimit -a 或 ulimit -s

可以看到,在我的Linux上,栈空间大约只有8M的大小

 Windows

我没找到查看栈空间大小的指令,听说Windows的栈空间大小在2M左右。

堆空间有多大

我也没找到查看堆空间大小的指令,不过可以肯定的是:

堆空间非常大,而且要远远大于栈空间。

堆和栈的区别是什么

它们在以下几个方面有所不同:

分配方式:栈内存由编译器自动分配和释放,而堆内存需要程序员手动申请和释放。

分配速度:栈内存的分配和释放速度较快,仅需要移动指针即可完成。而堆内存的分配和释放速度相对较慢,需要在堆中搜索合适的空间。

空间大小:栈内存的大小通常有限,由编译器或操作系统预先确定,一般较小。而堆内存的大小相对较大,取决于系统的可用内存大小。

数据访问:栈内存的数据访问速度较快,因为它们存储在物理内存中的连续地址空间上。而堆内存的数据访问速度较慢,因为它们是通过指针进行间接访问的。

生命周期:栈内存中的数据的生命周期与其所属的函数或代码块的执行周期相对应。而堆内存中的数据可以在程序的任何地方进行手动分配和释放,生命周期更加灵活。

碎片问题:栈内存不容易产生碎片问题,因为分配和释放是按照先进先出(LIFO)的方式进行。而堆内存容易产生内存碎片,因为分配和释放的顺序不一定是连续的。

需要根据程序的需求,合理选择使用栈或堆内存来存储数据。栈主要用于存储局部变量和函数调用信息,而堆主要用于存储动态分配的数据,如对象、数组等。

为什么要有堆,全用栈不行吗

当然不行,前面说过堆的空间远远大于栈的空间。当需要存储非常大的数据在内存中时,栈根本顶不住,因为栈的空间太有限了,只有堆才有足够的空间来存储。

也就是说,堆的优势在于空间够多。

为什么要有栈?

栈是一个先进先出的数据结构,没有栈,不好管理函数的调用和返回:

栈用于存储函数调用期间的局部变量和函数参数。每当函数被调用时,栈会为该函数分配一块内存空间,用于存储其局部变量和临时数据。当函数执行完毕后,该内存空间会自动释放,以便为其他函数调用提供空间。

也就是说,栈的优势在于先进先出的结构特性。

用代码说明堆和栈的一些区别

用栈

可以看到类A的对象a1在离开了作用域后,内存就被回收了

#include<iostream>
#include<windows.h>
using namespace std;class A{public:A(){cout<<"分配内存"<<endl;}~A(){cout<<"收回内存"<<endl;}
};int main(){{A a1;	//申请一块栈内存来存储类A}while(1){Sleep(1000);cout<<"..."<<endl;}}

 

用堆

可以看到,用堆来存储时,即使离开了作用域,内存也没被回收

#include<iostream>
#include<windows.h>
using namespace std;class A{public:A(){cout<<"分配内存"<<endl;}~A(){cout<<"收回内存"<<endl;}
};int main(){{A *p=new A;	//申请一块堆内存来存储类A}while(1){Sleep(1000);cout<<"..."<<endl;}}

 

http://www.khdw.cn/news/34431.html

相关文章:

  • 做景观要知道哪些网站苏州企业网站关键词优化
  • 武进做网站整合营销包括哪些内容
  • 动态网站制作素材网站注册流程
  • 影视制作拍摄公司泰州seo排名扣费
  • 网站备案名字填写写文章一篇30元兼职
  • 温州网站域名注册服务公司nba最新资讯
  • 哪个软件制作视频比较好百度网站怎样优化排名
  • 裕顺网站建设项目网
  • 网站建设优化服务如何网站制作
  • 制作人韩剧结局seo专员岗位要求
  • 自己做网站需要什么软件奉化网站关键词优化费用
  • 网站设计联盟市场营销培训课程
  • 网站商品管理功能长沙百度公司
  • wordpress全站音乐百度热搜榜排名今日头条
  • 哈尔滨网络公司招聘信息长春网站seo
  • 辽阳哪里做网站网络外包
  • 手机网站如何建设抖音seo教程
  • 男女做污的事情网站视频百度竞价推广是什么工作
  • 网站后台教程搜索引擎营销推广
  • 关于政府网站建设意见张家口网站seo
  • 不同网站模块分析市场营销的对象有哪些
  • 社保网站做员工用工备案新网域名注册
  • 杭州网站建设培训学校seo优化系统
  • 做网站找俊义 合优网络推广怎么做
  • 网站上文章字体部分复制怎么做电商
  • 怎么给自己的网站做seo百度平台商家订单查询
  • 私人订制网站推荐seo搜索铺文章
  • 专业网站设计定制网站排名优化化快排优化
  • 太原代理记账长沙网站seo分析
  • 招聘做微信公众号网站维护seo外包是什么意思