Função retornando array mas principal mostrando lixo [duplicado]
O código a seguir está imprimindo valores de lixo. Eu estou passando uma matriz para uma função que adiciona 5 a cada elemento, mas quando ele retorna o ponteiro da matriz, o principal está mostrando lixo.
Eu tentei indexação e ponteiros lá no principal, mas ainda os mesmos resultados. Como posso consertar isso?
# include <conio.h>
# include <iostream>
using namespace std;
int * add5ToEveryElement(int arr[], int size)
{
int theArray[5];
for(int i=0; i<size; i++)
{
theArray[i] = arr[i] + 5;
cout<<theArray[i]<<endl;
}
return theArray;
}
void main()
{
const int size = 5;
int noArr[size];
for(int i=0; i<size; i++)
{
noArr[i] = i;
}
int *arr = add5ToEveryElement(noArr, size);
cout<<endl;cout<<endl;
for(int i=0; i<size; i++)
{
cout<<arr[i]<<endl;
}
cout<<endl;cout<<endl;cout<<endl;cout<<endl;
for(int i=0; i<size; i++)
{
cout<<*arr<<endl;
*arr++;
}
getch();
}