【发布时间】:2020-10-10 15:33:02
【问题描述】:
所以目前我一直在使用指针,现在我知道如何使用它们以及它们在哪里赚钱,但仍然有一个问题一直困扰着我。为什么我要一些东西在 Heap 和一些在 Stack 中?
当我们声明一个指针时,变量和地址都留在堆栈中,但具体的指针地址指向了该值。好的,但我为什么要这样做?为什么我不应该只声明一个普通变量?什么时候必须使用动态内存分配?
【问题讨论】:
标签: c++ pointers stack heap-memory
所以目前我一直在使用指针,现在我知道如何使用它们以及它们在哪里赚钱,但仍然有一个问题一直困扰着我。为什么我要一些东西在 Heap 和一些在 Stack 中?
当我们声明一个指针时,变量和地址都留在堆栈中,但具体的指针地址指向了该值。好的,但我为什么要这样做?为什么我不应该只声明一个普通变量?什么时候必须使用动态内存分配?
【问题讨论】:
标签: c++ pointers stack heap-memory
堆内存“存在”直到您调用delete(或delete[]),堆栈内存只存在直到您退出声明它的范围。这就是区别。
【讨论】:
嗯,这完全取决于您和您的应用程序。
堆栈的使用 如果您确切知道在编译时需要分配多少数据并且它不太大,您会使用堆栈。
堆的使用: 如果您不知道运行时需要多少数据或需要分配大量数据,则可以使用堆。
你也可以参考下面的链接更详细
【讨论】: