Ho scritto il codice seguente per prova che prende 3 interi in input, li inserisce in un array e poi stampa il contenuto dell'array. Il problema è che quando stampo l'array il primo elemento è giusto mentre gli altri due no.
La funzione restituisce un puntatore int che è il nome dell'array.
Codice:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int *initArray(int, int, int);
int main()
{
int a = 0;
int b = 0;
int c = 0;
cout << "Insert 3 integers: ";
cin >> a;
cin >> b;
cin >> c;
int *arr = initArray(a, b, c);
for (int i = 0; i < 3; i++)
cout << "Array element " << i << " = " << arr[i] << endl;
return 0;
}
int *initArray(int a, int b, int c)
{
int myArray[] = {0, 0, 0};
myArray[0] = a;
myArray[1] = b;
myArray[2] = c;
for (int i = 0; i < 3; i++)
cout << "The element " << i << " in the function is: " << myArray[i] << endl;
return myArray;
}
Qualcuno può dirmi cosa sbaglio?