【发布时间】:2019-10-06 05:08:29
【问题描述】:
我想知道如果我在 C++ 中的堆上创建一个数组并将堆栈中的数据分配给数组,到底会发生什么?数据是否复制到堆上?
代码片段:
int a = 1;
int b = 2;
int *c = new int(3);
int *arr = new int[3];
arr[0] = a;
arr[1] = b;
arr[2] = *c;
【问题讨论】:
-
是的,它们被复制了。我不明白你在问什么?
int c = new int(3);不会编译顺便说一句。 -
如果你分配给变量,数据被复制。这些变量的位置无关紧要。
-
一个简单的问题:你能有一个参考数组吗?即对象的地址数组。
-
你不能有一个引用数组;你可以有一个指针数组。如果愿意,您还可以拥有一个包装引用的对象数组。
-
@rert588 你似乎错过了理解
&在用于获取变量地址与声明引用变量或参数时的作用。
标签: c++ arrays pointers heap-memory