We are trying to return an array of structures to print the contents in the main. When debugging the code, we get to the line right before the return statement and it shows that it is holding the right contents which is an `int` and then a `string` (`playerID` and `name`). As soon as the return statement executes the array is returned to the `main` but only the `playerID` is held in the array. All of the values for `name` have been lost. Can someone explain why this would happen and a possible solution? If further clarification is needed please let me know.

```
#include<iostream>
#include<fstream>
#include<cstring>
#include<string>
#include<math.h>

using namespace std;

struct Player 
 {
  int playerID;
  string name;
  };

Player *fillPlayers();

int main() 
{
 Player *myPlayerPointer;
 myPlayerPointer = fillPlayers();
 return 0;
}

Player * fillPlayers() {
 ifstream file1;
 Player * fullPlayerPointer = new Player[244];
 Player ourPlayers[244];
 file1.open("Players.txt");
 if (file1.fail()) {
  cerr << "file1 did not open";
 }

 if (file1.is_open()){

 while (!file1.eof()){
  string size;
  getline(file1, size);
  for(int i = 0; i < 244; i++){
      file1 >> ourPlayers[i].playerID;
      file1 >> ourPlayers[i].name;
  }
 }
 file1.close();
}
 fullPlayerPointer = &ourPlayers[0];
 return fullPlayerPointer;
}

```