[SFML, C++] Map/set iterator not dereferencable
Ostatnio zmodyfikowano 2011-10-10 19:33
Dark Temat założony przez niniejszego użytkownika |
» 2011-09-12 19:48:32 http://www.wrzuc.to/n68Z7rr.wt
@edit spróbuję jakoś przebudować plik game.cpp, może nie będzie tego errora.
@edit2 Dalej tak samo wyskakuje błąd więc jest problem, gdyby ktoś mógł sprawdzić czy aplikacja u niego działa byłbym wdzięczny :) |
|
malan |
» 2011-09-14 19:59:59 Nie mam skompilowanego SFMLa pod MSVC. |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-09-15 19:08:09 |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-10-09 12:56:59 Czy ktoś ten problem pomoże rozwiązać, dalej nie mogę usunąć tego błędu? |
|
DejaVu |
» 2011-10-09 20:40:08 Czy działają Ci przykłady z kursu? |
|
akwes |
» 2011-10-09 22:26:01 Nie jest to wina SFML, więc temat nie pasuje trochę ;p
Błąd mówi że odczytujesz coś nieprawidłowo ustawionym lub nieustawionym iteratorem. Odczytujesz coś czego nie ma, już nie ma, albo nigdy nie było :P Ewentualnie przestało istnieć wraz z dodaniem do mapy/setu (ostatnio ktoś miał ten problem iż zamiast obiektów z dynamicznej alokacji pakował obiekty lokalne).
Jeżeli gdzieś masz usuwanie elementów mapy/set-u to przyjrzyj się temu. Ogólnie operacją iteratora, czy nie chodzi po o jednym za dużo elemencie, o jednym za wcześnie. Czy nie używasz metody obiektu, którego już nie masz itd |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-10-10 13:20:09 Ok, rozumiem spróbuję zrobić coś z inną implementacją obiektów a dokładniej chodzi mi o to :
sf::Sprite & Boh =( * SprajtyP->SprajtMap.find( "Boh" ) ).second; sf::Image & BohImg =( * SprajtyP->ImageMap.find( "ludz1.png" ) ).second; sf::Sprite & platfa =( * SprajtyP->SprajtMap.find( "platfa" ) ).second; sf::Sprite & kamien =( * SprajtyP->SprajtMap.find( "kamien" ) ).second; sf::Image & ziemiaI =( * SprajtyP->ImageMap.find( "platfa.png" ) ).second;
Spróbuję zaimplementować to w klasie Spritów, bo odkryłem, że coś z tym nie działa
@edit
Przykłady z kursu mi działają |
|
DejaVu |
» 2011-10-10 14:09:09 * SprajtyP->SprajtMap.find( "Boh" )
Taka operacja jest dozwolona pod warunkiem, że element istnieje w mapie. Ty nie sprawdzasz czy istnieje zakładając, że jest przez co wywala Ci się program. |
|
1 « 2 » 3 |