我有一个像这样声明的函数
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;
}
第一个总和是正确的,但其余的看起来是垃圾值,可能是什么原因?
答案 0 :(得分:1)
您正在从函数返回一个数组,但它的范围不会超出该函数,所以我确定您已经看到&#34;垃圾值&#34;。
您需要在函数中自己为arr_sum
分配空间,或者您可以传递要从调用者填充的数组。
答案 1 :(得分:0)
当您尝试返回本地功能时,您会收到垃圾,
return (arr_sum);