Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Listy - pierwsze starcie

Ostatnio zmodyfikowano 2013-03-05 18:54
Autor Wiadomość
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:

C/C++
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;


//dodawanie nastepnego;
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
P-77344
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.
P-77462
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?
P-77593
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 :)
P-77679
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.
P-77710
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
.
P-77726
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 :)
P-77757
« 1 »
  Strona 1 z 1