Witam,
mam smieszny problem zamiany referencji na wskaznik przy kolejce z STL.
class CollisionSolver : public Singleton<CollisionSolver>{
queue<ObjectOrder> csCollisionOrders;
///(...)
}
CollisionSolver::CollisionSolver(b2World *wd){
///(...)
//test dziala prawidlowo
queue<int> qtest;
qtest.push(666);
queue<int> * qptr;
qptr = &qtest;
assert(qptr);
}
//ale tutaj
queue<ObjectOrder> * CollisionSolver::getOrders(){
ObjectOrder test;
queue<ObjectOrder> * qptr;
csCollisionOrders.push(test); //wywala sie nawet wczesniej czyli tu
qptr = &csCollisionOrders;
assert(qptr); //pusto
return qptr;
}
jak dodalem wepchniecie do kolejki to okazalo sie ze to tez wywala z tekstem:
Unhandled exception at 0x00403e9a in TestBed.exe: 0xC0000005: Access violation reading location 0x00000000;
co jest dziwne bo w innej funkcji wczesniej dodawalem normalnie elementy...
w Debuggerze kod zatrzymuje się w pliku xutility na linijce:
if (_Myfirstiter != _IGNORE_MYITERLIST)
Nie wiem czy to moja wina, ze o czyms nie wiem czy...
</cpp>