Cześć, piszę na studiach aplikacje klient-serwer, taki prosty chacik działający na wątkach. Do obsługi np. logowania mam stworzoną strukturę, której pola są umieszczane w innej ta wysyłana jest do serwera. Tak one wyglądają:
Login
struct Login {
char username[128];
char passwd[128];
};
Msg
struct Msg {
unsigned int msgID;
unsigned int contentSize;
char payload[1];
};
w payload trzymam login i hasło. Jeśli zrobię hardcoding po stronie klienta, np.
Login loginData = {"Sashore", "Haslo"};
i wyśle to, serwer otrzymuje poprawne dane, ale jeśli zrobię tak:
Login* loginData = new Login;
cout<<"Podaj nazwe:\n";
cin>>loginData->username;
cout<<"Podaj haslo:\n";
cin>>loginData->passwd;
to serwer otrzymuje jakieś śmieci. Podobnie sprawa ma się z rejestracją, użytkownik podaje i powtarza hasło, wypisując oba pola dane są identyczne (przy podaniu tych samych ciągów oczywiście) ale kiedy przychodzi do warunku sprawdzającego to nagle się okazuje że jednak hasła różnią się
Jak rozwiązać ten problem, żeby serwer otrzymał poprawne (czyli to co jest wpisane) dane?