z jakiegoś powodu program pada w tym samymy miejscu
Ostatnio zmodyfikowano 2016-03-01 09:26
piotrmaceluch Temat założony przez niniejszego użytkownika |
z jakiegoś powodu program pada w tym samymy miejscu » 2016-03-01 01:14:53 Witam serdecznie. Za każdym razem program zdycha po wykonaniu funkcji ksiazka.wypisz_dane(); ::::::::::::::::::::::::::::::::::::::::::: MOJ KOD PROGRAMU :::::::::::::::::::::::::::::::::::::::::::: #include<iostream> #include<string> #include<cmath> using namespace std;
static int licznik = 1;
class biblioteka { public: string imie, nazwisko, tytul; int rok_wydania; int nr_wydania; void wczytaj_dane(); void wypisz_dane(); biblioteka() { cout << "(w tym miejscu dziala konstruktor)" << endl; licznik++; } ~biblioteka() { cout << "(w tym miejscu dziala destruktor)" << endl; licznik--; } };
int main() { cout << "########## PROGRAM BIBLIOTECZNY #############" << endl << endl << endl; biblioteka * tablica_obiektow = new biblioteka[ licznik ]; for( int i = 0; i < 1000; i++ ) { biblioteka ksiazka; ksiazka = tablica_obiektow[ i ]; ksiazka.wczytaj_dane(); ksiazka.wypisz_dane(); cout << "____________ nastepna pozycja _______________" << endl << endl; } cout << "Ilosc stworzonych obiektow, to: " << licznik - 2; return 0; }
void biblioteka::wczytaj_dane() { cout << "Obiekt nr: " << licznik - 2 << endl; cout << "Podaj imie autora: "; cin >> imie; cout << "Podaj nazwisko autora: "; cin >> nazwisko; cout << "Podaj tytul ksiazki: "; cin >> tytul; cout << "Podaj rok wydania: "; cin >> rok_wydania; cout << "Podaj nr wydania: "; cin >> nr_wydania; cout << endl; }
void biblioteka::wypisz_dane() { cout << "============ Parametry dla danego obiektu: ================" << endl; cout << "-Imie autora: " << imie << endl; cout << "-Nazwisko autora: " << nazwisko << endl; cout << "-Tytul ksiazki: " << tytul << endl; cout << "-Rok wydania: " << rok_wydania << endl; cout << "-Nr wydania: " << nr_wydania << endl << endl; }
::::::::::::::::::::::::::::::::::::::::::::::::::::::::: KONSOLA ::::::::::::::::::::::::::::::::::::::::::: ########## PROGRAM BIBLIOTECZNY ############# (w tym miejscu dziala konstruktor) (w tym miejscu dziala konstruktor) Obiekt nr: 1 Podaj imie autora: super Podaj nazwisko autora: mega Podaj tytul ksiazki: turbo Podaj rok wydania: 2016 Podaj nr wydania: 666 ============ Parametry dla danego obiektu: ================ -Imie autora: super -Nazwisko autora: mega -Tytul ksiazki: turbo -Rok wydania: 2016 -Nr wydania: 666 ____________ nastepna pozycja _______________ (w tym miejscu dziala destruktor) (w tym miejscu dziala konstruktor) -------------------------------- Process exited after 57.79 seconds with return value 3221225477 Aby kontynuować, naciśnij dowolny klawisz . . . PS. Nie wiem dlaczego, ale nie ma u mnie okna do edytowania zawartości tematu (nie mogę wkleić jako tekst C++) [/i] |
|
piotrmaceluch Temat założony przez niniejszego użytkownika |
» 2016-03-01 01:22:06 Za co odpowiada to "return value" w konsoli?
Logicznie wydaje mi się, że program zwraca taką wartość ale to znaczyłoby, że albo mam jakąś nieskończoną pętlę, albo przekroczenie zakresu wartości dla jakiegoś typu, albo odwołanie do nieistniejącego elementu tablicy. Jestem dopiero początkującym "programistą". |
|
1aam2am1 |
» 2016-03-01 07:33:48 Wysypanie następuje trochę wyżej kiedy z tablica_obiektów chcesz odczytać drugi obiekt. Chociaż ta tablica ma długość jeden. Wychodzisz poza zakres. |
|
RazzorFlame |
» 2016-03-01 09:26:38 W Twoim kodzie nie rozszerzasz tablicy tylko zwiększasz sam licznik, co nie ma żadnego wpływu na tablice. |
|
« 1 » |