[C++] Referencja do wskaźnika
Ostatnio zmodyfikowano 2016-03-24 13:55
emSon Temat założony przez niniejszego użytkownika |
[C++] Referencja do wskaźnika » 2016-03-24 11:45:38 Cześć. Mam pewien problem z SIGSEGV. Otóż robię grę 2D. Mam sobię klasę Collider, w której trzymam wskaźniki na obiekty, z którymi mam sprawdzać kolizję. std::map < unsigned long, RectangleType *> m_collidableObjects; Mam też funkcję Update, która jest za to odpowiedzialna: void Collider::Update() { for( auto & pointer: m_collidableObjects ) { std::cout << pointer.second->renderBody.getGlobalBounds().width << std::endl; if( CollisionChecker::isColliding( m_gameBody->renderBody, pointer.second->renderBody ) ) { } } }
W kosoli wypis z cout'a pokazuje się poprawnie, natomiast po przekazaniu do CollisionChecker pokazuje się "Segmentation Fault'. Aktualnie funkcja ta wygląda tak: bool CollisionChecker::isColliding( sf::RectangleShape & rect1, sf::RectangleShape & rect2 ) { std::cout << rect1.getPosition().x << std::endl; return false; }
Co tu jest nie tak :/ ? |
|
michal11 |
» 2016-03-24 12:54:07 Trochę mało kodu. std::cout << rect1.getPosition().x << std::endl;
|
Z tego by wynikało, że problem jest z rect1 czyli m_gameBody->renderBody a nie z wskaźnikami w mapie. Czym jest gameBody ? Na pewno inicjujesz ten wskaźnik ? |
|
emSon Temat założony przez niniejszego użytkownika |
» 2016-03-24 13:55:43 O kurcze, tak się skupiłem na tych wskaźnikach na obiekty że zapomniałem o najważniejszym.. gameBody to wskaźnik na gracza i w ogóle go nie ustawiłem :D. Najciemniej pod latarnią. Dzięki ;) |
|
« 1 » |