【问题标题】:Store a data member on heap memory [duplicate]在堆内存上存储数据成员[重复]
【发布时间】:2015-09-22 02:26:09
【问题描述】:

当一个局部变量被初始化时,它被创建在栈上。我们可以在堆内存上创建一个局部变量吗?如果是这样,我们可以通过哪些不同的方式来做同样的事情?

我正在使用 c++

【问题讨论】:

  • 您使用哪种语言?
  • 我想用 C++ 来做
  • 你可以在堆上创建一些东西并获得一个指向它的指针。如果您在本地范围内声明指针,则该指针是本地的。本质上,您将在堆上拥有一个值,在堆栈上拥有一个指向堆的指针。这就是你想要的吗?

标签: c++ memory


【解决方案1】:

是的,当您初始化一个局部变量时,它会从堆栈中获取内存。
但是如果你想初始化一些局部变量并使用堆内存,那么使用Dynamic Memory Allocation的概念,如下所示:

int *foo;
foo = new int [5];

这将在堆栈中初始化一个int pointer,但它会指向heap 中的某个内存位置,您可以使用它来存储您的foo 数组。

查看this 了解更多信息。

【讨论】:

    猜你喜欢
    • 2014-08-12
    • 2016-06-08
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 2016-12-05
    • 2015-08-05
    相关资源
    最近更新 更多