#include <iostream>
#include <fstream>
using namespace std;
struct Student {
string imie;
string nazwisko;
unsigned int nr_indeksu;
};
Student *wczytaj(ifstream &plik,int &lp)
{
plik.open("a.txt",ios::in);
if(!plik){
cerr << 'Nie udalo sie otworzyc pliku ! ';
}
plik >> lp;
Student *uczniowie = new Student[lp];
for(int i = 0 ; i < lp ; i++)
{
plik >> uczniowie[i].imie;
plik >> uczniowie[i].nazwisko;
plik >> uczniowie[i].nr_indeksu;
}
return uczniowie;
}
int main()
{
ifstream plik;
int lp;
Student *studenci = wczytaj(plik,lp);
return 0;
}
Czym to by sie roznilo od takiego zwrocenia wskaznika
Student wczytaj(ifstream &plik,int &lp)
{
plik.open("a.txt",ios::in);
if(!plik){
cerr << 'Nie udalo sie otworzyc pliku ! ';
}
plik >> lp;
Student *uczniowie = new Student[lp];
for(int i = 0 ; i < lp ; i++)
{
plik >> uczniowie[i].imie;
plik >> uczniowie[i].nazwisko;
plik >> uczniowie[i].nr_indeksu;
}
return *uczniowie; // wiem ze wtedy w mainie by nie dzialalo by przypisanie Student *studenci = wczytaj(plik,lp);
}
Czyli nie wiem czym sie to rozni i kiedy ktore stosowac zwrocenia wskaznika poprzez return i poprzez zwracanie wskaznika do okreslonego typu ?(jedynie wiem ze mam tak napisac jesli chce zwrocic dynamiczna tablice struktur)
Inne pytanie zapis Student *uczniowie = new Student[lp]; Jak mam to rozumiec ? ze jest to wskaznika na klase student i przydziela dynamicznie pamiec ?