Witam
banalny program ale czy ktoś może mi podpowiedzieć dlaczego program przerywa wykonywanie jeśli w linii 8 daję double a nie float?
#include <iostream>
using namespace std;
class student {
private:
char * name;
float marks1, marks2; //tutaj chcę dać double
public:
student() {
cout<<"Podaj imie: ";
cin>>name;
cout<<"Podaj pierwszą ocenę: ";
cin>>marks1;
cout<<"Podaj drugą ocenę: ";
cin>>marks2;
cout<<"Poprawnie wprowadzono dane studenta."<<endl;
}
void disp(){
cout<<"Twoje imię to: "<<name<<endl<<"Twoja średnia to: ";
cout<<calc_media()<<endl;
}
double calc_media(){
return (marks1+marks2)/2;
}
};
int main()
{
student obj1;
obj1.disp();
}
Jak debuguję to po wprowadzeniu imienia dostaję:
The inferior stopped because it received a signal from the operating system.
Signal name :
SIGSEGV
Signal meaning :
Segmentation fault
Ale zupełnie nie rozumiem dlaczego tak się dzieje.