c++ - C++ 堆和栈内存(内存管理)
问题描述
所以目前我一直在使用指针,现在我知道如何使用它们以及它们在哪里赚钱,但仍然有一个问题一直困扰着我。为什么我想要一些东西在 Heap 和一些在 Stack ?
当我们声明一个指针时,变量和地址保留在堆栈中,但特定的指针地址指向该值。好的,但我为什么要这样做?为什么我不应该只声明一个普通变量?有什么意义,什么时候必须使用动态内存分配?
解决方案
堆内存“存在”直到您调用delete
(或delete[]
),堆栈内存仅存在直到您退出声明它的范围。这就是区别。
推荐阅读
- function - Vuetify v2.3.14 v-calendar getVisibleEvents 函数返回空数组
- apiblueprint - 来自外部文件的 MSON 数据结构
- javascript - Javascript 函数返回 False 但应该返回 True
- coldfusion - 所有 IIS 站点都已由其他版本的 ColdFusion 配置
- swift - NSPredicate 在 Swift Playground 中不起作用(信号 SIGABRT)
- android - 尝试从另一个片段中的片段调用函数时出现 NullPointerException
- javascript - 带有 Node.js 的 ASP.NET Core 2.2 应用程序在 VS 更新后中断
- excel - 如何在 VBA 中对两个范围向量求和?
- excel - 复制一行文本并粘贴到不同工作簿中的下一个可用空间
- coq - Z_3:留下身份证件