0

ファイルに情報を挿入する C++ プログラムを入手しました。データを取得するための 2 つ目のプログラム ( this one ) を取得しました。私の目標は、すべてのデータを取得し、それを Student 型の配列として返すことです。GetFromFile メソッドで情報を取得していて、それを印刷できますが、それを返してメイン関数で次のように使用する方法は次のとおりです。

int size;
Student *students = getFromFile( "D:\\test.txt", size );
cout << students[0].name;

私が得ているエラーは

[Warning] address of local variable `students' returned 

これは私のコードです:

struct Student 
{
   string name;
   char egn[11];
   short grade;
   double avg_grades;
   int excused, unexcused;    
};

Student* getFromFile(string filename, int &length)
{
 fstream file;

 file.open(filename.c_str(), ios::in);

 file >> length;

 Student students[length];

 for ( int i = 0; i < length; i++ )
 {
    file >> students[i].name >> students[i].egn >> students[i].grade >> students[i].avg_grades >> students[i].excused >> students[i].unexcused;
 }

file.close();

return students;
}

int main()
{
int size;
Student *students = getFromFile( "D:\\test.txt", size );

cout << students[0].name;
4

2 に答える 2