【发布时间】:2015-08-28 15:49:17
【问题描述】:
有没有办法写如下功能代码
int* returnFilledArray() {
int* arr = new int[2];
arr[0] = 1;
arr[1] = 2;
return arr;
}
不知何故? (创建并填充数组作为一个衬垫)。
int* returnFilledArray() {
return new int {1,2};
}
如果尝试了各种组合,但我总是会遇到一些语法错误,所以如果是 可能我会感谢您的详细解释。
【问题讨论】:
-
试试这个 int[] returnFilledArray{......}
-
请注意,如果您创建并返回这样的数组,则无法知道它的实际长度,除非您对所有数组都有一个已知的恒定长度。我更愿意推荐
std::vector而不是普通数组。 -
@Mephane:
std::vector还具有可以使用Boost.Assign 的优点(仅需要 C++11 之前的版本)。 -
@moon:
int[] returnFilledArray();和int* returnFilledArray()是完全相同的函数签名,所以评论(虽然被赞成)根本没有意义。 -
我不能使用 std::vector 因为我们必须编写一个小型编译器而不使用 std 中的数据结构。
标签: c++