函数没有返回正确的参数

时间:2014-11-10 16:02:16

标签: c++

我有一个像这样声明的函数

int * return_array(int * arr1 , int * arr2);

并且函数定义如下

int * return_array(int * arr1, int * arr2)
{
    int arr_sum[5]={0};
    int count = 0;
    do
    {
        arr_sum[count] = *(arr1+count)+*(arr2+count);
        count ++;
    }
    while (count < 5);
    return (arr_sum);
}

这就是我试图访问主函数

中返回的数组的方法
int *get_arr;
get_arr=return_array(arr1,arr2);
cout << "Their sum is :"
     << endl;
for (count = 0; count < 5; ++count)
{
     cout << *(get_arr+count)
          << endl;
}

第一个总和是正确的,但其余的看起来是垃圾值,可能是什么原因?

2 个答案:

答案 0 :(得分:1)

您正在从函数返回一个数组,但它的范围不会超出该函数,所以我确定您已经看到&#34;垃圾值&#34;。

您需要在函数中自己为arr_sum分配空间,或者您可以传递要从调用者填充的数组。

答案 1 :(得分:0)

当您尝试返回本地功能时,您会收到垃圾,

return (arr_sum);