栈,堆,静态存储区-创新互联

1.栈是先入后出,

为邓州等地区用户提供了全套网页设计制作服务,及邓州网站建设行业解决方案。主营业务为网站设计制作、成都网站制作、邓州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

2.栈保存了一个函数调用所需的维护信息,函数参数,函数返回地址,局部变量,函数调用上下文。没有栈就没有函数,没有局部变量。

3.

栈保存了一个函数调用所需的维护信息(函数参数,函数返回值地址,局部变量,函数调用上下文)

4.栈上的数据在函数返回后就会被释放掉,无法传递到函数外部

5.堆是程序中一块巨大的内存空间,可由程序自由使用

6.堆中被程序申请使用的内存在程序主动释放前将一直有效

7.堆空间通过申请才能获得

8.系统对堆空间的管理方式(空闲链表法,位图法,对象池法等等)

9.程序静态存储区随着程序的运行而分配空间,直到程序运行结束

10.在程序的编译期静态存储区的大小就已经确定

11.程序的静态存储区主要用于保存程序中的全局变量和静态变量

12.与堆栈不同,静态存储区的信息最终会保存到可执行程序中.

总结:

栈主要用于函数调用,堆区主要用于内存的动态申请和归还,静态存储区用于保存全局变量和静态变量

内存布局

1.文件头——代码段---数据段((定义的数据--未定的数据)--静态区的)

2.堆栈段在程序运行后才正式存在,是程序运行的基础

3..bass段存放的是未初始化的全局变量和静态变量

4..text段存放的是程序中的可执行代码

6..data段保存的是那些已经初始化了的全局变量和静态变量

7..rodata段存放程序中的常量值,如字符串常量

8.静态存储区通常指程序中的.bss和.data段

9.只读区通常指程序中的.rodata段

10.局部变量所占空间为栈上空间

11.动态空间为堆中的空间

12.程序可执行代码存放于.text段

scanf不能输入字符串,输入字符串用gets,vs为了安全着想可以使用scanf_s指定输入长度,fgets从文件流中输入指定的长度。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:栈,堆,静态存储区-创新互联
网页URL:http://scyanting.com/article/coggii.html