PHP týden Letní akce
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!
Avatar
Philip Recek
Člen
Avatar
Philip Recek:27. dubna 21:38

Zdravim potreboval by som poradit. Snazil som sa vytvorit jednoduchy prepojeny zoznam ale natrafil som na chybu s ktorou si neviem poradit. Ide o to ze ked sa pokusim vymazat nejaky prvok v zozname (napr. 6. v poradi) a potom sa snazim pridat novy prvok do zoznamu tak dostanem chypu core dumped. Podla mna je to chyba v remove funkcii ale neviem ju ani za svet najst.

Zkusil jsem:

63     void player::add(const field * ukField){
64         numOfPropertys++;
65         node* newNode = new node(ukField);
66         node* aktual = property;
67
68         std::cout << "(money): " << money << " $ - " << ukField->returnPrize() << " $ = " << (money -= ukField->returnPrize()) << " $" << std::endl;
69
70         if(property == nullptr) property = newNode; // if this is first property
71         else{
72             if(ukField->returnPrize() >= property->ukData->returnPrize()){
73                 newNode->next = property;
74                 property = newNode;
75             }
76             else{
77                 while(true){
78                     if(aktual->next == nullptr){
79                         aktual->next = newNode;
80                         break;
81                     }
82                     if(ukField->returnPrize() >= aktual->next->ukData->returnPrize()){
83                         newNode->next = aktual->next;
84                         aktual->next = newNode;
85                         break;
86                     }
87
88                     aktual = aktual->next;
89                 }
90             }
91         }
92     }
93
102     void player::remove(const ushort & num){
103         numOfPropertys--;
104         node * aktual = property;
105         node * temporary;
106
107         for(int i = 0; i < num - 2; i++){
108             aktual = aktual->next;
109         }
110
111         if(num == 1){
112             temporary = aktual;
113             property = property->next;
114         }
115         else{
116             temporary = aktual->next;
117             aktual->next = aktual->next->next;
118         }
119         std::cout << "sold //(money): " << money << " $ +" << temporary->ukData->returnPrize() << " $ = " << (money += temporary->ukData->returnPrize()) << " $\n" << std::endl;
120
121         delete temporary;
122     }

Chci docílit: Parameter num vo funkcii remove je ktory prvok v poradi chcem vymazat.
Fakt dakujem za kazdu radu.

 
Odpovědět 27. dubna 21:38
Avatar
JerryM
Člen
Avatar
JerryM:21. června 13:06

máš to napsaný blbě ... všechno ..
nejdřív ukaž jak vypadá ta struktura buňky na kterou se napojujou ukazatele

 
Nahoru Odpovědět 21. června 13:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.