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

[Allegro C++] Problem z alokacją pamięci

Ostatnio zmodyfikowano 2010-04-05 21:48
Autor Wiadomość
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:
C/C++
//Bullet to obiekt który chce zaalokować
bool Utworz( Bullet * T, std::string name, std::string file, Vector pos )
{
    //sprawdzamy czy jest taka bitmapa
    if( !Collector::Instance().FindCurrBitmap( file ) ) return false;
   
    T = new Bullet( name, pos, Collector::Instance().GetCurrBitmap() ); //tworzymy obiekt
    Bullets.push_back( T ); //wstawiamy wskaźnik do dynamicznej tablicy z której poźniej "Updatujemy" nasz obiekt i rysujemy go
    return true;
}
Taką funkcję wywołuje cały czas z tym samy wskaźnikiem np.:
C/C++
int main()
{
    Bullet * bullet;
    //gdzies w petli głównej
    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 ?
P-15834
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?
P-15838
« 1 »
  Strona 1 z 1