Witam, mam problem z prostym programem (rozbitym na 3 pliki "osoby.cpp", "osoby.h", "main.cpp").
osoby.cpp:
#include"osoby.h"
using namespace std;
Osoba wczytaj(Osoba nowa)
{
cout << "\nimie: ";
cin.getline(nowa.imie, 20);
cout << "\nnazwisko: ";
cin.getline(nowa.nazwisko, 20);
cout << "\nwaga: ";
cin >> nowa.waga;
cout << "\nwiek: ";
cin >> nowa.wiek;
cout << "\nwzrost: ";
cin >> nowa.wzrost;
return nowa;
}
osoby.h
#ifndef OSOBY_H
#define OSOBY_H
#include<iostream>
struct Osoba
{
char imie[20];
char nazwisko[20];
int wiek;
double waga;
int wzrost;
};
Osoba wczytaj(Osoba nowa);
#endif
main.cpp:
#include"osoby.h"
using namespace std;
int main()
{
Osoba testowa;
// testowa.wiek = 15;
wczytaj(testowa);
system("pause");
}
Program ma pobierać od użytkownika dane do struktury utworzonej w pliku nagłówkowym "osoby.h". Jednakże po uruchomieniu program uruchamia się, po czym wyskakuje napis, że użyto zmiennej bez jej inicjacji:
Run-Time Check Failure #3 - The variable 'testowa' is being used without being initialized.
po kliknięciu "continue" program dziala tak jak powinien, czyli pyta o imie, nazwisko itd oraz zapisuje to w zmiennej strukturalnej.
Przetestowałem nadanie zmiennej jakiejś wartości początkowej (tak jak w pliku main.cpp - to co jest skomentowane) i wtedy program działa bez problemu. Czy można temu jakoś zaradzić w inny sposób? Może czegoś nie widzę.. Z góry dziękuję za pomoc