【发布时间】:2013-11-16 19:34:50
【问题描述】:
为什么要在堆上拥有一个数组?我的教授给了我们两个理由:
- 将数组传递给函数,而不是传递副本
- 使数组比作用域更长
这些都不能通过以下方式解决:
- 将指针传递给堆栈中的数组
- 返回数组的值而不是数组本身(即使用复制构造函数)
谁能给我一个例子,说明堆中的数组必须在哪里使用?
【问题讨论】:
-
“数组的值而不是数组本身”是什么意思?您通过将指针传递给数组的第一个元素来传递数组。指针必须指向 to 某物,如果在堆栈展开时该 某物 消失了,则您还没有找到一种方法让“数组 [超过] 范围"。
-
@JensGustedt 我在上面列出了我的原因....
-
@JoshuaTaylor 使用复制承包商返回数组。
-
在堆栈上分配大数组不是一个好主意。
-
栈小,堆大。