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

[SFML, C++] Map/set iterator not dereferencable

Ostatnio zmodyfikowano 2011-10-10 19:33
Autor Wiadomość
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 :)
P-40873
malan
» 2011-09-14 19:59:59
Nie mam skompilowanego SFMLa pod MSVC.
P-40979
Dark
Temat założony przez niniejszego użytkownika
» 2011-09-15 19:08:09
http://www.wrzuc.to/f4qOgmqHs.wt
http://www.wrzuc.to/wrSlpF6jF.wt

to są liby i inne rzeczy potrzebne do wrzucenia do VS
P-41032
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?
P-41876
DejaVu
» 2011-10-09 20:40:08
Czy działają Ci przykłady z kursu?
P-41890
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
P-41893
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 :
C/C++
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ą
P-41896
DejaVu
» 2011-10-10 14:09:09
C/C++
* 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.
P-41897
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona