栈的两种存储方式 栈存放的是什么?
浏览量:2971
时间:2021-03-10 16:01:46
作者:admin
栈存放的是什么?
在C中,内存分为四个区域,它们是堆、堆栈、静态存储区和常量存储区
1。堆栈是编译器在需要时分配的变量的存储区域,在不需要时自动清除。其中的变量通常是局部变量、函数参数等
2。堆,也称为空闲内存区,是在程序执行过程中动态分配的。它最大的特点是动态的。new分配的内存块不是由编译器管理的,而是由我们的应用程序控制的。通常,new对应于delete。如果程序员不释放内存块,程序完成后,操作系统将自动循环。如果堆对象已分配,但忘记释放,则会发生内存泄漏。如果对象已释放,但相应的指针未设置为null,则指针为“悬挂指针”
3。静态存储区。所有静态对象和全局对象都分配到静态存储区
4。固定存储区域。这是一个特殊的储藏区。它们存储的内容是常量,不能修改(当然,您可以通过不适当的方式修改它,并且有许多方法)。常量字符串存储在静态存储区,并返回常量字符串的第一个地址
顺序堆栈即堆栈的顺序存储结构,使用一组具有连续地址的存储单元依次存储从堆栈底部到堆栈顶部的数据元素。同时,还附加了一个指针top,以指示堆栈元素的顶部在顺序堆栈中的位置。通常使用top=0表示空堆栈。一般来说,初始化空堆栈时,不应限制堆栈的最大容量。更合理的方法是:首先为堆栈分配一个基本的容量,然后在应用过程中当堆栈空间不足时扩展堆栈。空堆栈的表达式是s.top==s.base。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。