Listy - pierwsze starcie
Ostatnio zmodyfikowano 2013-03-05 18:54
Fores Temat założony przez niniejszego użytkownika |
Listy - pierwsze starcie » 2013-02-28 21:58:22 Witam, przeszedlem do nauki nowego elementu c++ jakim sa listy. I mam maly problem, ktory pochodzi z mojej niewiedzy zwiazanej ze wskaznikami ;s Otoz mam taki kodzik: struct pole { char a; pole * next; };
pole pierwszy;
pierwszy.a = 'P'; pierwszy.next = new pole;
pierwszy.next->a = 'A'; pierwszy.next->next = new pole;
pierwszy.next->next->a = 'W'; pierwszy.next->next->next = nullptr;
pole * wartosc = pierwszy.next->next;
char znak; cin >> znak;
int kon = 0; do { if( wartosc == nullptr ) { wartosc = new pole; wartosc->a = znak; wartosc->next = nullptr; kon = 1; } else wartosc = wartosc->next; } while( kon != 1 ); Mecze sie nad tym juz od 2 godzin i nie moge dojsc do tego czemu zle dodaje elementy do listy ;/ Pozdrawiam |
|
pekfos |
» 2013-03-02 13:57:24 wartosc to kopia wskaźnika. Zmodyfikowanie kopii nie zmieni oryginału. Zamiast sprawdzać czy wartosc jest równa nullptr , sprawdzaj czy wartosc->next jest równe nullptr . elementu c++ jakim sa listy. |
Lista nie jest elementem C++. To struktura danych. |
|
Fores Temat założony przez niniejszego użytkownika |
» 2013-03-03 18:22:14 Dzieki za pomoc. W takim razie jak moge rozwiazac ten problem? Wykorzystac podwojny wskaznik czy jakos inaczej? |
|
usmiech |
» 2013-03-04 18:20:42 Lista, czyli rozumiem , ze klasa to taki skladzik, w ktorym /mowiac lopatologicznie/ trzyma sie informacje pomagajace okreslic jakas grupe obiektow. Np jesli stworzysz klase samochod to moga tam byc zmienne typu value /czyli dane dotyczace np roku produkcji, przebiegu itp../ albo skladniki okreslajace zachowanie obiektow klasy samochod /czyli funkcje, np funkcja obliczajaca zuzycie paliwa, albo funkcja obliczjaca wartosc samochodu w zaleznosci od roku produkcji..../. W sumie to nie do konca rozumiem jakie zadanie ma Twoja klasa... A tak nawiasem mowiac sadze, ze klasy /podobnie jak skladniki klasy typu private sa udogodnieniem do pracy w zespole. Klasy to podstawa profesjonalnego programowania w C++. Prawdziwa sztuka to umiejetne jej wykorzystanie... Ucze sie jak to wykorzystac i zastosowac , pozdrawiam :) |
|
Fores Temat założony przez niniejszego użytkownika |
» 2013-03-04 23:45:10 Powyzsza lista nie ma zadnego zastosowania, gdyz napisalem to tylko dla cwiczen :) A niesety wskazniki sa dla mnie dosc skomplikowane i wychodze takie problemy jak teraz. |
|
pekfos |
» 2013-03-05 14:49:27 W takim razie jak moge rozwiazac ten problem? |
Zamiast sprawdzać czy wartosc jest równa nullptr , sprawdzaj czy wartosc->next jest równe nullptr . |
|
|
usmiech |
» 2013-03-05 18:54:54 Nie dziwie sie, ze masz problem ze wskaznikami. Ale postaraj sie popatrzec na wskaznik inaczej. Jak piszesz w programie cokolwiek /zmienna typu value, string itp.../ to kompilator rezerwuje dla tych 'danych' jakies miejsce w pamieci kompa. Jest to okreslone miejsce/adres/ i jakas przypisana dla tego miejsca wartosc wielkosci tego miejsca. Wskaznik do wpisanej zmiennej podaje dokladny adres tej zmiennej a jednoczesnie jakby ja sama....Mam nadzieje, ze nie pokrecilem za mocno, a cala reszta to juz tylko syntax czyli kod /no skladnia /, niestety okreslonych 'znaczkow' musisz sie nauczyc na pamiec :) |
|
« 1 » |