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

Dynamiczna pamięć/struktury

Ostatnio zmodyfikowano 2014-01-12 18:14
Autor Wiadomość
Lamacz
Temat założony przez niniejszego użytkownika
Dynamiczna pamięć/struktury
» 2014-01-10 21:10:57
Witam

Próbując napisać mój program zetknąłem się z jednym problemem. Mam coś takiego:
C/C++
struct Samochod {
    string ID;
};

struct Miejsce {
    Samochod * klient;
};
struct Parking {
    Miejsce parking[ 50 ];
};

Parking firma;

Po stworzeniu obiektu firma chciałbym zwiększyć ilość miejsc na parkingu ale nie wiem jak to mam zrobić skoro tablica jest w strukturze. Wcześniej to zrobiłem tak, że nie tworzyłem struktury Parking tylko stworzyłem dynamiczną tablice przechowującą obiekty typu Miejsce, ale w poleceniu mam wyraźnie napisane, że to musi być tablica w trzeciej strukturze Parking.

Jak zwiększyć ilość miejsc?

Pozdrawiam.
P-101803
Lamacz
Temat założony przez niniejszego użytkownika
» 2014-01-11 12:04:42
Wie ktoś może jak to rozwiązać?
P-101825
Monika90
» 2014-01-11 12:27:40
C/C++
std::vector < Miejsce > parking;
P-101827
Lamacz
Temat założony przez niniejszego użytkownika
» 2014-01-11 13:04:17
A co wtedy ze strukturą Parking? Jeżeli stworze wektor typu Miejsce. W poleceniu jest napisane, że ma to być struktura parking zawierająca tablice przechowującą obiekty typu Miejsce.
P-101830
RazzorFlame
» 2014-01-11 16:28:16
Umieść wektor w strukturze?
P-101854
Maddivue
» 2014-01-11 19:23:16
<< Removed >>
Załóż własny temat.
P-101876
Lamacz
Temat założony przez niniejszego użytkownika
» 2014-01-12 16:56:29
Dziękuję
Napotkałem się jeszcze na jeden problem:
C/C++
struct Samochod {
    string ID;
};

struct Miejsce {
    Samochod * klient = new Samochod;
};
struct Parking {
    vector < Miejsce > firma;
};

Parking firma;
firma.parking.resize( 50 );

Przy takim zapisie jeżeli coś chcę później zapisać do zmiennej ID nie ma żadnego problemu tylko ten zapis przepuszcza code::blocks, a Visual już nie. Natomiast przy takim zapisie:
C/C++
struct Samochod {
    string ID;
};

struct Miejsce {
    Samochod * klient;
};
struct Parking {
    vector < Miejsce > firma;
};

Parking firma;
firma.parking.resize( 50 );

Po próbie zapisu czegoś do zmiennej lub odczytaniu wyrzuca błąd pamięci. Teraz moje pytanie jak stworzyć później w biegu za pomocą operatora "new" stworzyć tą zmienną ID?

P-101987
Monika90
» 2014-01-12 17:15:38

C/C++
struct Miejsce {
    Samochod * klient = new Samochod;
};
ten zapis przepuszcza code::blocks, a Visual już nie
masz starą wersję kompilatora, zdefiniuj konstruktor to będzie działać w obu
C/C++
struct Miejsce {
    Miejsce()
        : klient( new Samochod )
    { }
    Samochod * klient;
};
tylko pytanie: po co w ogóle wskaźnik?
P-101991
« 1 » 2
  Strona 1 z 2 Następna strona