Poprzedni temat «» Następny temat
[C++] tablica obiektów z tablicami wskaźników
Autor Wiadomość
Luminofor 



Dołączył: 27 Lis 2007
Posty: 1144
Skąd: Polska
Wysłany: 2011-08-18, 23:54   [C++] tablica obiektów z tablicami wskaźników

Witam,
Mam taki problem:

Mam sobie klasę car, w której jest 50-elementowa tablica wskaźników na obiekty innej klasy.

Jak poprawnie utworzyć w programie tablicę obiektów typu car, aby te wskaźniki (te stablicowane w obiektach klasy car w tablicy) się nie sypały? Bo zauważyłem, że czasami są zupełnie bzdurne i psują mi cały program.

Aktualnie ratuję się takim działającym rozwiązaniem:
Kod:
const int NR_OF_CARS = 10;
car c1,c2,c3,c4,c5,c6,c7,c8,c9,c10;
car cars[NR_OF_CARS] = {c1,c2,c3,c4,c5,c6,c7,c8,c9,c10};


Które niestety nie jest idealne bo co jak przyjdzie mi zwiększyć rozmiar tablicy do 1000 elementów?

Próbowałem już zabaw z new'em ale na próżno.
 
     
gjakubow 
Nowy na forum


Wiek: 39
Dołączył: 19 Lip 2007
Posty: 13
Skąd: Sopot
Wysłany: 2011-08-19, 17:38   

Witam,
chyba nie zrozumiałem w czym dokładnie masz problem,
ale postaram się odpisać tak jak zrozumiałem twój problem:
możesz zadeklarować tablice obiektów i żeby uzyskać wskażnik na obiekt użyć operatora dereferencji & np.:
int tab[5];
int *aPtr = &tab[0];
albo użyć new i delete tak jak w poniższym kawałku kodu:

Kod:

class AnotherClass
{
public:
    int zxc;
};

class Car
{
public:
    enum { EL_NUM = 20 };

    AnotherClass anotherClassesArr[EL_NUM];
    AnotherClass* anotherClassPtrArr[EL_NUM];

    Car(void);
    virtual ~Car(void);
};

Car::Car(void)
{
    for (int i = 0; i < EL_NUM; i++) {
        anotherClassPtrArr[i] = new AnotherClass();
    }
}

Car::~Car(void)
{
    for (int i = 0; i < EL_NUM; i++) {
        delete anotherClassPtrArr[i];
    }
}



w każdym razie jeśli nie o to Tobie chodziło, to spróbuj pokazać swój niedziałający kod, to postaramy się znaleźć błąd.

pozdrawiam, Grzegorz
 
     
Thud 
Nowy na forum


Wiek: 23
Dołączył: 02 Sie 2011
Posty: 39
Skąd: Górny Śląsk
Wysłany: 2011-08-19, 19:51   

Co dokładnie wywala? Masz SIGFAULT, przeciek pamięci?

Najlepiej właśnie jakbyś pokazał kod.
 
     
Luminofor 



Dołączył: 27 Lis 2007
Posty: 1144
Skąd: Polska
Wysłany: 2011-08-19, 19:58   

Panowie chyba problem rozwiązany, próbowałem czytać z -1 indeksu tablicy, jak by jednak to nie to to jeszcze się odezwę, dzięki za pomoc.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Strona wygenerowana w 0,03 sekundy. Zapytań do SQL: 10