Funktion gibt Array zurück, zeigt aber Hauptmüll an [duplizieren]

Der folgende Code druckt Müllwerte. Ich übergebe ein Array an eine Funktion, die jedem Element 5 hinzufügt, aber wenn sie den Zeiger dieses Arrays zurückgibt, zeigt die Hauptanzeige Müll.

Ich habe sowohl die Indizierung als auch die Zeiger dort in der Hauptsache versucht, aber immer noch die gleichen Ergebnisse. Wie kann ich das beheben?

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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage