[Allegro C++] Problem z alokacją pamięci
Ostatnio zmodyfikowano 2010-04-05 21:48
kombajn1992 Temat założony przez niniejszego użytkownika |
[Allegro C++] Problem z alokacją pamięci » 2010-04-05 17:55:03 Witam! Mam problem z alokacją dynamicznych obiektów. Otóż mam sobie taki kod: bool Utworz( Bullet * T, std::string name, std::string file, Vector pos ) { if( !Collector::Instance().FindCurrBitmap( file ) ) return false; T = new Bullet( name, pos, Collector::Instance().GetCurrBitmap() ); Bullets.push_back( T ); return true; }
Taką funkcję wywołuje cały czas z tym samy wskaźnikiem np.: int main() { Bullet * bullet; if( key[ KEY_H ] ) Utworz( bullet, "pocisk", "strzala.bmp", Vector( 500 - rand() % 250, 500 - rand() % 250 ); }
Jednak czasami nie udaje mi się utworzyć obiektu. Zauważyłem, że program nie chce alokować obiektu wtedy gdy na ekranie wyświetlam zbyt dużą ilość innych obiektów(które o dziwo są alokowane w ten sam sposób i z nimi nic takiego się nie dzieje;/). Nie wiem co z tym robić, próbowałem zerować wskaźnik za każdym razem ale to też nic nie dało ;(. Ma ktoś jakieś pomysły ? |
|
DejaVu |
» 2010-04-05 21:48:26 Po co istnieje argument T w funkcji? /edit: Tak poza tym to kod który wkleiłeś posiada niepoprawną ilość nawiasów zaokrąglonych, zamykających w main'ie. /edit2: Sprawdzałeś w ogóle ile MB pamięci używa Twoja aplikacja w chwili w której alokacja się nie udaje? |
|
« 1 » |