Witam. Robie zadanie o tresci: Funkcja getinfo() ma dwa parametry: wskaźnik pierwszego elementu tablicy struktur student oraz liczbę int określającą liczbę elementów w tablicy. Funkcja pobiera i zapisuje dane o studentach. Wprowadzanie danych kończy się, kiedy tablica jest pełna lub podane zostanie puste nazwisko studenta. Funkcja zwraca liczbę studentów wpisanych do tablicy.
Jednak wyskakuje błąd w linijce 28 gdzie deklaruje zmienna entered i przypisuje dynamiczną tablicą struktur. Najprawdopodobniej błąd z wywołaniem i samą funkcją jednak nie mogę go znaleźć, ponieważ przepisałem to z książki, jedynie funkcje zrobiłem sam a błąd wyskoczył tam, gdzie się tego nie spodziwałem;
#include <iostream>
using namespace std;
const int SLEN = 30;
struct student
{
char fullname[SLEN];
char hobby[SLEN];
int ooplevel;
};
int getinfo (student pa, int n);
void display1 (student st);
void display2 (const student * ps);
void display3 (const student pa[], int n);
int main()
{
cout << "Podaj wielkosc grupy: ";
int class_size;
cin>>class_size;
while(cin.get()!='\n')
continue;
student * ptr_stu = new student[class_size];
int entered = getinfo(ptr_stu, class_size);
for(int i=0;i<entered;i++)
{
display1(ptr_stu[i]);
display2(&ptr_stu[i]);
}
display3(ptr_stu, entered);
delete [] ptr_stu;
cout<<"Gotowe!\n";
return 0;
}
int getinfo (student pa[], int n)
{
for(int i=0;i<n;i++)
{
cout<<"Podaj nazwisko studenta: ";
cin.getline(pa[i].fullname, SLEN);
if(cin.get() == '\n')
break;
cout<<"Podaj jego hobby: ";
cin.getline(pa[i].hobby, SLEN);
cout<<"Podaj jego numer: ";
cin>>pa[i].ooplevel;
}
return i;
}