Функция, возвращающая массив, но основной показывает мусор [дубликат]

Следующий код печатает значения мусора. Я передаю массив в функцию, которая добавляет 5 к каждому элементу, но когда он возвращает указатель этого массива, основной показывает мусор.

Я пробовал индексировать и указатели там в основном, но все еще те же результаты. Как я могу это исправить?

# 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();
}

Ответы на вопрос(3)

Ваш ответ на вопрос