Aktywne Wpisy

ChlopoRobotnik2137 +266
I cyk, udało się dojść do Kennedy Meadows, oznacza to, że to już koniec pustyni i zaraz zaczną się góry Sierra . Wreszcie dostałem paczkę z butami i udało się je wymienić na nowe ( dzięki Mirkowi który polecił Saucony, chociaż to się okaże jak się sprawdzi). Zakupiłem też mini kolce na góry oraz obowiązkową beczkę na żarcie w rejonie niedźwiedzi . Ostatniej nocy udało się przypadkiem zobaczyć skorpiona, ale po tym
źródło: IMG_4262
Pobierz

ChlopoRobotnik2137 +114
Waga zmierzona i wychodzi , że ubyło 11,55 kg chłopa od 5 maja kiedy było ważone wcześniej . Coraz @mniejmniejest
Kto wie, może i bym wygrał #igrzyskabebzonow , gdyby mnie nie wyrzucili
#zlomkiemprzezswiat
Kto wie, może i bym wygrał #igrzyskabebzonow , gdyby mnie nie wyrzucili
#zlomkiemprzezswiat
źródło: image_picker_62D348C6-D9B7-4BAB-9804-A03809F62AE9-9674-00000A002BD6593A
Pobierz




for (auto it = db.groups.begin(); it != db.groups.end(); ++it) {((Group*) *it)->restore();
}
gdzie db.groups to QList, a Group::restore() emituje sygnał który może ale nie musi wywalić ten pointer z listy; chodzi o to, że w trakcie iteracji ta lista może się zmienić... no i to oczywiście powoduje problemy... jeżeli 3 lub więcej pointerów zniknie (nie ma problemu dla dwóch lub jednego) to przedostatni pointer wskazuje na zwolnioną już pamieć no i ten cały seg fault. Co zrobić żeby iteracja dalej trwała i nie gubiła porządku?
@hesar: czyli jak? restore() ma usuwać to co wcześniej oznaczyłem do usunięcia właśnie...
1) zrobić głęboką kopię listy i po niej iterować
2) uƶywać indeksów, czyli
for(int i = 0; i < db.groups.size(); ++i){ ... }(zakładając, ƶe usuwanie działa tylko wprzód)