Dynamiczna tablica struktur - stos
Ostatnio zmodyfikowano 2015-10-26 16:09
Witicar Temat założony przez niniejszego użytkownika |
Dynamiczna tablica struktur - stos » 2015-10-26 12:42:12 Dzien dobry, mam otóż maly problem z programem, wysypuje go przy wpisaniu stringa na inny niz 1 element stosu (przy int i double dziala poprawnie). Problemem tez na chwile obecna jest dla mnie zwrot wartosci tablicy ze stosu gdyz wtedy takze program sie sypie. Jestem w trakcie nauki struktur i wskaznikow (zaczalem 2 dni temu) moze dlatego nie moge ujrzec bledu #include <iostream> #include <string> #include <conio.h> using namespace std;
struct struktura { int cyfra; double liczba; string wyraz; };
void push( struktura tablica[], int & licznik ) { int wybor; do { cin.sync(); cin.clear(); cout << "Wybierz typ zmiennej (1 - int, 2 - double, 3 - string)"; cin >> wybor; switch( wybor ) { case 1: cout << "Wprowadz zmienna" << endl; cin.sync(); cin.clear(); cin >> tablica[ licznik ].cyfra; cout << "push\t" << tablica[ licznik ].cyfra << endl; break; case 2: cout << "Wprowadz zmienna" << endl; cin.sync(); cin.clear(); cin >> tablica[ licznik ].liczba; cout << "push\t" << tablica[ licznik ].liczba << endl; break; case 3: cout << "Wprowadz zmienna" << endl; cin.sync(); cin.clear(); cin >> tablica[ licznik ].wyraz; cout << "push\t" << tablica[ licznik ].wyraz << endl; break; default: break; } } while( !( wybor == 1 || wybor == 2 || wybor == 3 ) ); licznik++; }
struktura pop( struktura tablica[], int & licznik ) { licznik--; return tablica[ licznik ]; }
int main() { int licznik = 0; struktura * tablica = new struktura[ licznik + 1 ]; for( int i = 0; i < 2; i++ ) push( tablica, licznik ); for( int i = 0; i < 2; i++ ) pop( tablica, licznik ); _getch(); return 0; }
|
|
carlosmay |
» 2015-10-26 14:20:29 W czasie wizyty w funkcji push wypełniasz tylko jedno pole w strukturze, a reszta? |
|
Witicar Temat założony przez niniejszego użytkownika |
» 2015-10-26 14:26:07 Reszta zostaje bez zmian, w sumie powinienem im nadac jakies wartosci poczatkowe. Jednak odkrylem ze prawdziwym winowajcą jest owa tablica dynamiczna(na statycznej dziala poprawnie). Mialem zle wyobrazenie do jej dzialan i w tym miejscu chyba lepiej sprawdzila by sie lista lub ewentualnie vector. |
|
carlosmay |
» 2015-10-26 14:46:10 int licznik = 0; struktura * tablica = new struktura[ licznik + 1 ]; Tablica ma tylko jeden element. |
|
Witicar Temat założony przez niniejszego użytkownika |
» 2015-10-26 15:04:58 Wlasnie uzylem tablicy statycznej, w funkcji pop zwracam tablice struktury z ktorej potem w main wyluskuje do osobnych tablic int, double i string wartosci z struktury, wszystko dziala jak nalezy, temat do zamkniecia. |
|
carlosmay |
» 2015-10-26 16:09:07 |
|
« 1 » |