C++ do struktury przypisują się niechciane wartości
: 12 sty 2009, o 22:20
Tak jak w temacie, Mam 2 funkcje które przypisują do struktury dane,kłopot w tym, że druga funkcja(pobOceny) zapisuje do struktury niechciane wartości:
_______________________________________________
#include <iostream>
using namespace std;
struct OCENA{
float oc;
};
struct STUDENT{
char imie[25];
OCENA* stopnie[0];
};
STUDENT *Grupa[0];
void pobDane()
{
STUDENT *nowy;
nowy = new STUDENT;
cout<<"Podaj imie: ";
cin.getline(nowy->imie,25);
Grupa[0]=nowy;
}
void pobOceny()
{
STUDENT* nowe;
nowe=new STUDENT;
nowe->stopnie[0] = new OCENA;
cout<<"Podaj ocene: ";
cin>>(nowe->stopnie[0])->oc;
cout<<endl<<"imie--->"<<Grupa[0]->imie<<endl; //Tu jest ok !
Grupa[0]=nowe; //przypisują się przypadkowe wartości do zmiennej imie, czego nie chce.
cout<<endl<<"imie--->"<<Grupa[0]->imie<<endl; //Tu jest błąd !
}
int main(int argc, char *argv[])
{
pobDane();
pobOceny();
system("PAUSE");
return EXIT_SUCCESS;
}
_______________________________________________
Ma ktoś może pomysł na lepsze zapisanie wartości do struktur ? Nie można też dodać linijki
nowe->imie=Grupa[0]->imie;
przed linijką
Grupa[0]=nowe;//przypisują się przypadkowe wartości do zmiennej imie, czego nie chce.
bo wywali błąd: "ISO C++ forbids assignment of arrays"
Struktury mam z góry narzucone.
I nie mogę w jednej funkcji pobrać od razu wszystkich danych.
W jednej funkcji muszę pobrać imię w drugiej oceny.
_______________________________________________
#include <iostream>
using namespace std;
struct OCENA{
float oc;
};
struct STUDENT{
char imie[25];
OCENA* stopnie[0];
};
STUDENT *Grupa[0];
void pobDane()
{
STUDENT *nowy;
nowy = new STUDENT;
cout<<"Podaj imie: ";
cin.getline(nowy->imie,25);
Grupa[0]=nowy;
}
void pobOceny()
{
STUDENT* nowe;
nowe=new STUDENT;
nowe->stopnie[0] = new OCENA;
cout<<"Podaj ocene: ";
cin>>(nowe->stopnie[0])->oc;
cout<<endl<<"imie--->"<<Grupa[0]->imie<<endl; //Tu jest ok !
Grupa[0]=nowe; //przypisują się przypadkowe wartości do zmiennej imie, czego nie chce.
cout<<endl<<"imie--->"<<Grupa[0]->imie<<endl; //Tu jest błąd !
}
int main(int argc, char *argv[])
{
pobDane();
pobOceny();
system("PAUSE");
return EXIT_SUCCESS;
}
_______________________________________________
Ma ktoś może pomysł na lepsze zapisanie wartości do struktur ? Nie można też dodać linijki
nowe->imie=Grupa[0]->imie;
przed linijką
Grupa[0]=nowe;//przypisują się przypadkowe wartości do zmiennej imie, czego nie chce.
bo wywali błąd: "ISO C++ forbids assignment of arrays"
Struktury mam z góry narzucone.
I nie mogę w jednej funkcji pobrać od razu wszystkich danych.
W jednej funkcji muszę pobrać imię w drugiej oceny.