在C
堆栈vs. heap:lifeSpan 的问题,与普遍的信念相反,性能并不是选择堆栈和堆和堆的主要因素。关键差异在于变量的寿命。
将本地变量存储在仅在该函数中可访问的函数中。这些变量在返回函数时会自动破坏。heap:
存储对象,很少使用的变量,以及需要超越其声明功能的大数据结构。 clarity clarity 考虑以下代码shippet:
class thitty; 东西* foo() { int a; //堆栈 - 分配整数 b; //堆栈 - 分配的东西对象 东西 *pointertob =&b; //指向堆栈分配对象的指针 thing *pointertoc = new Thingy(); //堆 - 分配的东西对象 //安全:堆分配的东西概要foo() 返回pointertoc; //不安全:堆栈分配的东西将在foo()返回时被销毁 返回Pointertob; 在此示例中}A和b被存储在堆栈上,因为它们是foo()本地的。
Understanding the stack concept requires a deeper dive into the基础机器。 “ Heap”和“ stack”是编译器发明,计算机的内存只是地址数组。通过检查诸如呼叫堆栈和呼叫惯例之类的概念,可以掌握机器如何执行功能并管理内存。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3