【发布时间】:2012-02-03 10:33:54
【问题描述】:
我需要将一个数组读入我的函数,提取数据,然后从函数返回一个数组。
该数组只能保存 2 个值。
这是我想做的概念:
int myfunction(int my_array[1])
{
int f_array[1];
f_array[0] = my_array[0];
f_array[1] = my_array[1];
// modify f_array some more
return f_array;
}
我已经阅读了有关指针等的内容,但非常困惑,希望能有一个非常基本的例子来说明如何最好地解决这个问题!
谢谢!
【问题讨论】:
-
@fefe:因为您可能希望避免不必要的内存分配。
std::array,或包含数组的结构,如果在编译时知道大小,效率会更高。 -
这个特定的数组只有 一个 项的空间。一个数组存储的项目数量与它所说的一样多,不会比要求的多。
-
无论您选择哪种方式,请确保您仍然学习指针,因为它们是一个非常重要的概念。
-
为了强调 UncleBens 的这一点,当你声明一个数组时,你声明了它包含的项目数:在
int a[N]中,a是一个包含N元素的数组。当然后使用索引来引用元素时,您的索引从0到N-1。地址a + N存在,但它指的是数组末尾之后的地址,并且没有元素存在于那里。不应使用a[N]访问它,否则守护程序会飞出你的鼻子。
标签: c++ arrays function return